下载此文档

2015-2016学年第二学期《算法与数据结构》课程实验报告.doc


文档分类:高等教育 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
2015-2016学年第二学期《算法与数据结构》课程实验报告专业软件工程学生姓名班级软件141学号实验学时16实验教师信息工程学院实验一单链表的基本操作一、,进一步掌握C语言的基本结构及特点。。。。二、主要仪器及耗材普通计算机三、实验内容与要求1、用C语言编写一个单链表基本操作测试程序。(1)初始化单链表(2)创建单链表(3)求单链表长度(4)输出单链表中每一个结点元素(5)指定位置插入某个元素(6)查找第i个结点元素的值(7)查找值为e的结点,并返回该结点指针(8)删除第i个结点(9)销毁单链表2、实验要求(1)程序中用户可以选择上述基本操作。程序启动后,在屏幕上可以菜单形式显示不同功能,当按下不同数字后完成指定的功能,按其他键,则显示错误后重新选择。(2)要求用线性表的顺序存储结构,带头结点的单链表存储结构分别实现。(3)主函数实现对基本操作功能的调用。3、主要代码(1)初始化单链表LinkList*InitList(){//创建一个空链表,初始化线性表 LinkList*L; L=(LinkList*)malloc(sizeof(LinkList)); L->next=NULL; returnL;}(2)创建单链表//头插法voidCreateListF(LinkList*L){ LinkList*s; inti=1,a=0; while(1){ printf("输入第%d个元素(0表示终止)",i++); scanf("%d",&a); if(a==0) break; s=(LinkList*)malloc(sizeof(LinkList)); s->data=a; s->next=L->next; L->next=s; }}(3)求链表长度intListLength(LinkList*L){//求链表长度intn=0;LinkList*p=L;while(p->next!=NULL){ p=p->next; n++;}return(n);}(4)在指定位置插入元素intInsertList(LinkList*L,inti,ElemTypee){ LinkList*p=L,*s; intj=0; while(p!=NULL&&j<i-1){ p=p->next; j++; }//找出要插入的位置的前一个位置 if(p==NULL){ return0; } else{ s=(LinkList*)malloc(sizeof(LinkList)); s->data=e; s->next=p->next; p->next=s; return1; }}(5)输出链表voidDispList(LinkList*L){//输出链表 LinkList*p=L->next; while(p!=NULL) { printf("%d",p->data); p=p->next; } printf("\n");}(6)查找链表中指定元素intGetElem(LinkList*L,inti){//查找链表中指定元素 LinkList*p=L; intj=0; while(j<i&&p!=NULL){ j++; p=p->next; } if(p==NULL){ return0; } else{ returnp->data; }}(7)查找值是e的结点并返回该指针LinkList*LocateElem(LinkList*L,ElemTypee){ //查找值是e的结点并返回该指针 inti=1; LinkList*p=L; while(p!=NULL) { if(p->data==e)returnp; } if(p==NULL){ returnNULL; }}(8)删除元素intListDelete(LinkList*L,inti,ElemType*e){//删除元素 LinkList*p=L,*q; intj=0; while(p!=NULL&&j<i-1){ p=p->next; j++; }//找到要删除元素地址的前一个地址 if(p==NULL) {return0;}//不能删除 else{ q=p->next; *e=q->data; p->next=q->next; free(q);//删除成功 return1; }}(9)销毁链表voidDestroyList(LinkList*L){//销毁链表 LinkList*pre=L,*p=L->next; while(p!=NULL) { free(pre); pre=p; p=pre->next; } free(pre);}……m

2015-2016学年第二学期《算法与数据结构》课程实验报告 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xiaodengyou
  • 文件大小191 KB
  • 时间2019-01-10