数据结构实验的报告.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验的报告

试验编号:______ 四川师大数据结构实验报告 2011 年3 月27 日 计算机科学学院09 级4 班 实验名称:线性表实验 姓名:余燕敏 学号: 2009110468 指导老师: 李敏 实验成绩:________ 一、实验目的及要求 熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现; 2)以线性表的各种操作(建立、插入、删除等)的实现为重点; 3)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)。 认真阅读和掌握本实验的程序上机运行本程序 保存和打印出程序的运行结果,并结合程序进行分析。按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果线性表基本操作的实现创建、插入、删除和查找InitList_Sq(sq)顺序表的创建、ListInsert_Sq(sq,s,number)顺序表的插入、PrintNumber(sq)打印新得的数、ListDelete_Sq(sq,s,number顺序表的删除,建立新的整型变量s、ret、number,字符变量char。 子函数InitList_Sq(sq)完成顺序表的创建功能,先构造一个空表L,并设置空表长度为0,然后初始存储容量。 子函数ListInsert_Sq(sq,s,number)完成顺序表的插入的功能,if(L-length=L-listsize) {newbase=(ElemType*)realloc(L-elem,(L-listsize+LISTINCREMENT)*sizeof(ElemType));}表示若当前存储空间已满,还要增加分配。q=(L-elem[i-1]),q为插入位置,取i-1的地址赋给q。for(p=(L-elem[L-length-1]);p=q;--p) *(p+1)=*p为插入位置及之后的元素后移。 子函数ListDelete_Sq(sq,s,number完成顺序表的删除的功能。首先用f((i1)||(iL-length)) return ERROR判断i的值是否合法,若不合法,则错误。P为被删除元素的位置。被删除元素之后的元素要往左移。 链表 主函数main主要调用子函数CreateList_L(L,k)链表的创建、ListInsert_L(L,m,n)链表的插入、ListDelete_L(L,m)链表的删除、length=length_L(L)、display_all(L,length)打印新得的数、GetELem_L(L,t,e)链表的查找,并利用条件语句do…while,switch语句。 子函数CreateList_L(LinkList *L,int n)完成链表的创建功能。输入n个元素的值,建立带表头结点的单链表线性L。(*L)-next=NULL先建立一个带头结点的单链表,*L=(LinkList)malloc(sizeof(LNode))用malloc开辟一个空间生成新结点,scanf(%d,p-data);?? p-next=NULL;?? tail-next=p;?? tail=tail-next;输入元素值,并插入到表头。 子函数ListInsert_L(LinkList *L,int i,ElemType *e)完成链表的插入功能。用while语句寻找第i-1个结点,s=(LinkList)malloc(sizeof(LNode));? s-data=*e;? s-next=p-next;? p-next=s;生成新结点,并插入L中。 子函数ListDelete_L(LinkList *L,int i)完成在带头结点单链线性表L中,删除第i个元素,并返回其值的功能。用while(p-nextji-1){? p=p-next;? ++j;} 语句寻找第i个结点,并令p指向其前驱。if(!(p-next)||ji-1)return ERROR; q=p-next;? p-next=q-next;? ? free(q);删除位置不合理。删除并释放结点。 子函数display_all(LinkList L,int length)用于显示经过子函数处理所得的新的数。 四、实验结果的分析与评价(该部分如不够填写,请填写至附页) 顺序表:#include stdio.h #include conio.h #include malloc.h #includeiostream #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OK 1 #define ERROR 0 #define OVERFLOW -1 typede

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档