实验报告(《数据结构》适用)实验一 顺序表、单链表基本操作的实现.docVIP

  • 26
  • 0
  • 约4.99千字
  • 约 13页
  • 2017-05-21 发布于浙江
  • 举报

实验报告(《数据结构》适用)实验一 顺序表、单链表基本操作的实现.doc

实验报告(《数据结构》适用)实验一 顺序表、单链表基本操作的实现

肇庆学院 计算机学院/软件学院 实 验 报 告 专业 计算机科学与技术 班级 科技1班 姓名 付治齐 学号 201324131151 课程名称 数据结构 学年2014—2015 学期 1( / 2□ 课程类别 专业必修( 限选□ 任选□ 实践□ 评分: 批阅老师: 2014年 10月 30 日 实验一 顺序表、单链表基本操作的实现 实验目的 1、顺序表 (1)掌握线性表的基本运算。 (2)掌握顺序存储的概念,学会对顺序存储数据结构进行操作。 (3)加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。 2、链表 (1)掌握链表的概念,学会对链表进行操作。 (2)加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。 实验内容 1、顺序表 (1)编写线性表基础操作问题。 (2)调用上述函数实现基础的线性表操作。 (3) …… 2、链表 (1)编写链表基础操作函数。 (2)调用上述函数实现链表的基础操作。 (3) …… 实验结果 1、顺序表 (1)画出数据结构基本运算的流程图 (2)程序运行主要结果截图 (3)程序源代码 #includestdio.h #includestdlib.h #includemalloc.h struct LinearList { int *list; int size; int MaxSize; }; typedef struct LinearList LIST; void InitList(LIST *L,int ms) { if((L-list=(int*)malloc(ms *sizeof(int)))==NULL){ printf(内存申请错误!\n); exit(1); } L-size=0; L-MaxSize=ms; } int InsertList(LIST *L,int item,int rc) { int i; if(L-size=L-MaxSize) return-1; if(rc0) rc=0; if(rcL-size) rc=L-size; for(i=L-size-1;i=rc;i--) L-list[i+1]=L-list[i]; L-list[rc]=item; L-size++; return 0; } void OutputList(LIST *L) { int i; for(i=0;iL-size;i++) printf(%d ,L-list[i]); printf(\n); } int FindList(LIST *L,int item) { int i; for(i=0;iL-size;i++) if(item==L-list[i]) return i; return -1; } int DeleteList1(LIST *L,int item) { int i,n; for(i=0;iL-size;i++) if(item==L-list[i]) break; if(iL-size){ for(n=i;nL-size-1;n++) L-list[n]=L-list[n+1]; L-size--; return i; } return -1; } int DeleteList2(LIST *L,int rc) { int i,n; if(rc0||rc=L-size) return -1; for(n=rc;nL-size-1;n++) L-list[n]=L-list[n+1]; L-size--; return 0; } void main() { LIST LL; int i,r; printf(list addr=%p\tsize=%d\tMaxSize=%d\n,LL.list,LL.size,LL.MaxSize); InitList(LL,100); printf(list addr=%p\tsize=%d\tMaxSize=%d\n,LL.list,LL.size,LL.MaxSize); while(1) { printf(请输入元素值,输入0结束插入操作:); fflush(stdin); scanf(%d,i); if(i==0) break; printf(请输入插入位置:); scanf(%d,r); InsertList(LL,i,r-1);

文档评论(0)

1亿VIP精品文档

相关文档