顺序表的基本操作实现_第1页
顺序表的基本操作实现_第2页
顺序表的基本操作实现_第3页
顺序表的基本操作实现_第4页
顺序表的基本操作实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.淮海工学院计算机科学系实验报告书课程名: 数据结构 题 目: 顺序表的基本操作实现试验 班 级: D网络工程072 学 号: 0 姓 名: 田 静 评语:成绩: 指导教师: 朱敏 批阅时间: 2008-10-18.实验一 顺序表的基本操作实现实验1实验目的1)掌握线性表的顺序存储结构和链式存储结构; 2)熟练掌握顺序表和链表基本算法的实现; 3)掌握利用线性表数据结构解决实际问题的方法和基本技巧; 4)按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及及相关实验数据与运行结果);5)按时提交实验报告2实验环境计算机、C语言程序设计环境3实验学时2学时,必做实验。 4实

2、验内容 实现顺序表的基本操作,线性表中数据元素类型为 结构体,成员包括学生的姓名、学号、若干课程的成绩(int型),按照顺序存储结构实现如下算法: 1)创建任意线性表,长度限定在100个学生信息之内; 2)打印(遍历)该线性表(依次打印出表中元素值); 3)在线性表中查找第i个元素,并返回其值; 4)在线性表中第i个元素之前插入一已知元素; 5)在线性表中删除第i个元素;5 实验步骤与源程序#include#include#include#define ERROR 0#define OK 1#define EQUAL 1#define OVERFLOW -1#define LIST_INIT_

3、SIZE 100#define LISTINCREMENT 10struct STU char name20; char stuno10; int c; int d; int age; int score;stu50;typedef struct STU ElemType;struct LNODE ElemType data; struct LNODE *next;typedef struct LNODE LNode;typedef struct LNODE *LinkList;int init(LinkList *L) *L=(LNode *)malloc(sizeof(LNode); if

4、(!L) exit(ERROR); (*L)-next=NULL; return OK;/*init */int ListLength(LinkList L) int j=0; while (L-next) L=L-next; j+; return j;int GetElem(LinkList L,int i,ElemType *e) LinkList p; int j; p=L-next;j=1; while(p&jnext;+j; if(!p|j1) return ERROR; *e=p-data; return OK;int EqualList(ElemType *e1,ElemType

5、 *e2) if (strcmp(e1-name,e2-name)=0) return 1; else return 0;int Less_EqualList(ElemType *e1,ElemType *e2) if (strcmp(e1-name,e2-name)next) p=p-next; if(EqualList(&p-data,&e) return 1; return 0;break; default:break; return 0;void MergeList(LinkList La,LinkList Lb,LinkList *Lc) LinkList pa,pb,pc; pa=

6、La-next;pb=Lb-next; *Lc=pc=La; while(pa & pb) if(Less_EqualList(&pa-data,&pb-data) pc-next=pa;pc=pa;pa=pa-next; else pc-next=pb;pc=pb;pb=pb-next; pc-next=pa?pa:pb; free(Lb);int printlist(LinkList L) int i; LinkList p; p=L; printf(name stuno age score c dn); while(p-next) p=p-next; printf(%-10s %st%d

7、t%dt%dt%dn, , p-data.stuno, p-data.age, p-data.score, p-data.c, p-data.d); printf(n);int ListInsert(LinkList L,int i,ElemType e) LinkList p,s; int j; p=L;j=0; while(p&jnext; +j; if(!p|ji-1) return ERROR; s=(LinkList)malloc(sizeof(LNode); s-data=e; s-next=p-next; p-next=s; return OK;/*List

8、Insert Before i */main() struct STU e; LinkList La,Lb,Lc; clrscr(); printf(nn-List Demo is running.-nn); printf(First is InsertList function.n); init(&La); strcpy(,stu1); strcpy(e.stuno,100001); e.age=80; e.score=1000; e.c=70; e.d=80; ListInsert(La,1,e); strcpy(,stu3); strcpy(e.stuno,100

9、002); e.age=80; e.score=1000; ListInsert(La,2,e); printlist(La); getch(); strcpy(,stu5); strcpy(e.stuno,100003); e.age=80; e.score=1000; ListInsert(La,3,e); printlist(La); getch(); init(&Lb); strcpy(,stu2); strcpy(e.stuno,100001); e.age=80; e.score=1000; e.c=75; e.d=90; ListInsert(Lb,1,e

10、); strcpy(,stu4); strcpy(e.stuno,100002); e.age=80; e.score=1000; ListInsert(Lb,2,e); strcpy(,stu6); strcpy(e.stuno,100001); e.age=80; e.score=1000; ListInsert(Lb,3,e); printlist(Lb); getch(); MergeList(La,Lb,&Lc); printlist(Lc); getch(); printf(nnnnnnWelcome to visit !nnnnnnn);6 测试数据与实验结果 7结果分析与实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论