网站大量收购独家精品文档,联系QQ:2885784924

数据结构(C语言)实验报告分析.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(C语言版) 实验报告 专业 学号:_______________________ 班级:_______________________ 姓名:______________________ 指导教师:___________________ 青岛大学信息工程学院 0月 实验1 实验题目:顺序存储结构线性表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和顺序存储结构,掌握线性表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为整数类型的线性表,在表中允许有重复的数据;根据输入的数据,先找到相应的存储单元,后删除之。 实验主要步骤: 分析、理解给出的示例程序。 调试程序,并设计输入一组数据(3,-5,6,8,2,-5,4,7,-9),测试程序的如下功能:根据输入的数据,找到相应的存储单元并删除,显示表中所有的数据。 程序代码: #includestdio.h #includemalloc.h #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct{ int* elem; int length; int listsize; }Sqlist; int InitList_Sq(Sqlist L){ L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int)); if(!L.elem) return -1; L.length=0; L.listsize=LIST_INIT_SIZE; return OK; } int ListInsert_Sq(SqlistL,int i,int e){ if(i1||iL.length+1) return ERROR; if(L.length==L.listsize){ int *newbase; newbase=(int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int)); if(!newbase) return -1; L.elem=newbase; L.listsize+=LISTINCREMENT; } int *p,*q; q=(L.elem[i-1]); for(p=(L.elem[L.length-1]);p=q;--p) *(p+1)=*p; *q=e; ++L.length; return OK; } int ListDelete_Sq(Sqlist L,int i,int e){ int *p,*q; if(i1||iL.length)return ERROR; p=(L.elem[i-1]); e=*p; q=L.elem+L.length-1; for(++p;p=q;++p) *(p-1)=*p; --L.length; return OK; } int main(){ Sqlist L; InitList_Sq(L);//初始化 int i,a[]={3,-5,6,8,2,-5,4,7,-9}; for(i=1;i10;i++) ListInsert_Sq(L,i,a[i-1]); for(i=0;i9;i++) printf( %d,L.elem[i]); printf(\n);//插入9个数 ListInsert_Sq(L,3,24); for(i=0;i10;i++) printf( %d,L.elem[i]); printf(\n);//插入一个数 int e; ListDelete_Sq(L,2, e); for(i=0;i9;i++) printf( %d,L.elem[i]);//删除一个数 printf(\n); return 0; } 实验结果: 3,-5,6,8,2,-5,4,7,-9 3,-5,24,6,8,2,-5,4,7,-9 3,24,6,8,2,-5,4,7,-9 心得体会: 实验2 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符类型的单链表,在链表中不允许有重复的字符;根据输入的字符,先找到相应的结点,后删除之。 实验主要步骤: 分析、理解给出的示例程序。 调试程序,并设计输入数据(如:A,C,E,F,H,J,Q,M),测试程序的如下功能:不允许重复字符的插入;根据输入的字符

文档评论(0)

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

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

1亿VIP精品文档

相关文档