下载此文档

湖南师范大学工程与设计学院数据结构实验报告.doc


文档分类:高等教育 | 页数:约45页 举报非法文档有奖
1/45
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/45 下载此文档
文档列表 文档介绍
湖南师范大学工程与设计学院数据结构实验报告姓名:年级:2015级专业:计算机科学与技术学号:任课教师:开课时间:2016~2017学年第一学期实验(一)实验时间2016年12月8日星期四实验地点前栋403实验题目线性表的存储及操作实验目的掌握顺序存储结构和链式存储结构的特点;掌握常见算法。:已知两个按元素值有序的线性表A和B,编程实现:将A和B有序归并成一个按元素值有序的线性表,然后删除值相同的元素。:从键盘输入两个按元素值有序的线性表A和B的值;根据输入把数据元素分别以顺序存储结构和线性链表存储;有序归并成一个新的按元素值有序的线性表C;输出显示合并后的线性表C;分别在顺序存储结构和线性链表存储结构上删除值相同的元素,并显示删除后的线性表。(逻辑结构、存储结构):structNode{int*elem;intlength;intlistsize;}A,B,C;structnode{ intdata;structnode*next;}*HA,*HB,*HC;(类C语言+流程图):\先将两个表的元素从键盘输入,然后再将两个表相加,得到第三个表。在合并后的表中找到值相同的元素,将后面的元素前移以删除值相同的元素,最后将表的长度减1得到最终的结果。//顺序表LA,LB合为LCSqlistMergeList_sq(SqlistLa,SqlistLb,SqlistLc){ pa=,pb=,*pc; pa_last=+-1; pb_last=+-1; ==+; pc==(int*)malloc(*sizeof(int)); if(!)//分配失败 exit(0); while(pa<=pa_last&&pb<=pb_last){//判断La,Lb是否结尾 if(*pa<=*pb)//比较大小,影响插入的顺序*pc++=*pa++; else *pc++=*pb++; } while(pa<=pa_last)//可能存在没有插完的情况*pc++=*pa++; while(pb<=pb_last) *pc++=*pb++; returnLc;}单链表类C//合并链表La,Lb,LcLNode*MergeList_L(LinkListLa,LinkListLb,LinkListLc){ pa=La->next;pb=Lb->next; Lc=pc=La; while(pa&&pb){ if(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); returnLc;}(关键模块和语句加以注释说明):#include<>#include<>structNode{int*elem;intlength;intlistsize;}A,B,C;structnode{ intdata;structnode*next;}*HA,*HB,*HC;voiddel_order(){inti,j;for(i=0;i<-1;i++){ if([i]==[i+1]){ for(j=i+2;j<=-1;j++){ [j-1]=[j];}--;}}printf("\n删除后线性表C的值:\n");for(i=0;i<;i++){ printf("%d",[i]);}}intmerge_order(){inti=0,j=0,k=0;=+;=(int*)malloc(*sizeof(int));if(==NULL)return0;while(i<&&j<){if([i]<[j])[k++]=[i++];[k++]=[j++];}while(i<){[k++]=[i++];}while(j<){[k++]=[j++];}printf("线性

湖南师范大学工程与设计学院数据结构实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数45
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xiaodengyou
  • 文件大小487 KB
  • 时间2019-01-10