版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业数据结构与算法综合实验报告系 别: 专 业: 学生姓名: 指导教师: 2011年 11月 25日实验目的掌握线性表的建立、插入、删除算法;掌握查找算法;掌握排序算法;实验要求使用C语言(环境任意)开发程序,能够对用户输入的任意一组数据,建立一个线性表,可以输出此线性表。并且能够对此线性表进行插入、删除、查找、排序等操作。程序流程建表如下:定义一个整型的数据类型data和next指针:定义头指针和当前结点指针,申请连续空间将单个字节大小复制给头指针,把头指针赋值给当前节点
2、指针:若输入的数是0,则若输入不为0,把输入的数赋值给已申请的新结点,把新结点赋给当前节点的next域,再把新结点赋值给当前结点,以此方法重复执行得到如下链表:输出函数:把头指针赋值给当前结点指针,当当前节点的next域不为空时输出当前节点所指向的数据,把当前结点的next域赋值给当前节点,否则输出链表为空对此线性表进行插入、删除、查询、排序操作把已申请的结点数据域指向所输入的数再把插入w结点赋值头结点,是插入的位置,如果w=0则插入结点的next域赋值给头结点否则如果w表长,则输出超出范围代码及运行结果(主要语句要求有注释)#includestdafx.h#include#include#d
3、efine NULL 0typedef struct linknode int data; struct linknode *next;node;node *head;node *creat() node *currnode,*newnode; int x; head=(node*)malloc(sizeof(node); currnode=head; do scanf(%d,&x);newnode=(node*)malloc(sizeof(node);newnode-data=x;currnode-next=newnode;currnode=newnode; while(x!=NULL);
4、head=head-next; currnode-next=NULL; return head;int length() node *currnode; int i=0; currnode=head; while(currnode-data!=NULL) currnode=currnode-next; i+; ; return i;void print() node *currnode; currnode=head; printf(链表如下.linklist); while(currnode-data!=NULL) printf(%d-,currnode-data); currnode=cur
5、rnode-next; ; printf(NULLn); printf(链表长度为.linklist length%dn,length();void delete1() int x; node *delnode,*currnode; printf(输入要删除的数据.input delete data:); scanf(%d,&x); if(head-data=NULL) printf(此链表为空无法删除.this linklist empty!n); if(head-data=x) delnode=head; head=head-next; free(delnode); if(head=NUL
6、L) printf(此链表为空.this linklist enpty!); else currnode=head; delnode=currnode-next; while(delnode-data!=x&delnode!=NULL) currnode=currnode-next;delnode=currnode-next; ; if(delnode=NULL)printf(无此数据.no this data!n); else currnode-next=delnode-next; free(delnode); ; ;void find() node *currnode; int count
7、=1,x; currnode=head; printf(输入要查找的数据.input search data:); scanf(%d,&x); while(currnode-data!=NULL&currnode-data!=x) currnode=currnode-next; count+; ; if(currnode-data!=NULL) printf(n%d为第.is no.,currnode-data); printf(%d个数据.data。n,count); else printf(n无此数据.not this data!n);void insert() int x,w,i; no
8、de *insertnode, *afternode,*currnode; printf(输入要插入的数据Y.input inserte data:); scanf(%d,&x); printf(插入n结点后.insert after no. data n=:(0,1,); scanf(%d,&w); insertnode=(node*)malloc(sizeof(node); insertnode-data=x; if(w=0) insertnode-next=head; head=insertnode; else if(wlength() printf(超出范围.overflow!n);
9、else currnode= head;afternode=currnode-next; for(i=1;inext; currnode=currnode-next;currnode-next=insertnode;insertnode-next=afternode; ;void sort(node * *head)node *p,*q,*r,*s,*h1;h1=p=(node *)malloc(sizeof(node);p-next=*head;while(p-next-data!=NULL) q=p-next; r=p;while(q-next-data!=NULL)if (q-next-
10、datanext-data)r=q;q=q-next;if(r!=p)s=r-next;r-next=s-next;s-next=p-next;p-next=s;p=p-next;*head=h1-next;free(h1);void operation() printf(nn删除数据输入.delete1: 1n); printf(n查找数据输入.search: 2n); printf(n插入数据输入.insert: 3n); printf(n排序数据输入.sort: 4n); printf(n结束操作.end: 5n); printf(n?:);void main() int choic;
11、printf(n输入数据以0结束.input data 0 end:n); head=creat(); print(); operation(); do scanf(%d,&choic); switch(choic) case 1: delete1(); print(); operation(); break; case 2: find(); operation(); break; case 3:insert(); print(); operation(); break; case 4:sort(&head); print(); operation(); break; default:prin
12、tf(操作结束.operate end!); break; ; while(choic!=5);个人总结(要求1000字以上)数据结构学科的章节划分基本上为:概论,线性表,栈和队列,串,多维数组和广义表,树和二叉树,图,查找,内排,外排,文件,动态存储分配。对于绝大多数的学校而言,“外排,文件,动态存储分配”三章基本上是不考的,在大多数高校的计算机本科教学过程中,这三章也是基本上不作讲授的。所以,大家在这三章上可以不必花费过多的精力,只要知道基本的概念即可。但是,对于报考名校特别是该校又有在试卷中对这三章进行过考核的历史,那么这部分朋友就要留意这三章了。按照以上我们给出的章节以及对后三章的介绍
13、,数据结构的章节比重大致为:概论:内容很少,概念简单,分数大多只有几分,有的学校甚至不考。线性表:基础章节,必考内容之一。考题多数为基本概念题,名校考题中,鲜有大型算法设计题。如果有,也是与其它章节内容相结合。栈和队列:基础章节,容易出基本概念题,必考内容之一。而栈常与其它章节配合考查,也常与递归等概念相联系进行考查。串 :基础章节,概念较为简单。专门针对于此章的大型算法设计题很少,较常见的是根据KMP进行算法分析。多维数组及广义表 :基础章节,基于数组的算法题也是常见的,分数比例波动较大,是出题的“可选单元”或“侯补单元”。一般如果要出题,多数不会作为大题出。数组常与“查找,排序”等章节结合来作为大题考查。树和二叉树 :重点难点章节,各校必考章节。各校在此章出题的不同之处在于,是否在本章中出一到两道大的算法设计题。通过对多所学校的试卷分析,绝大多数学校在本章都曾有过出大型算法设计题的历史。图 :重点难点章节,名校尤爱考。如果作为重点来考,则多出现于分析与设计题型当中,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019年安全工程师《案例分析》真题及答案
- 2025年海西州都兰县保安员考试真题附答案解析
- 2025天津市津燃物业管理有限公司招聘副总经理1人笔试历年参考题库附带答案详解
- 2026年上海外国语大学贤达经济人文学院高职单招职业适应性考试备考试题及答案详解
- 2026年新疆科信职业技术学院高职单招职业适应性测试模拟试题及答案详解
- 2025四川雅安市交通建设(集团)有限责任公司拟聘用子公司工作人员(第一批)笔试历年参考题库附带答案详解
- 2026年上海对外经贸大学高职单招职业适应性考试备考试题及答案详解
- 2025四川自贡市汇安人力资源开发有限公司招聘2人笔试历年参考题库附带答案详解
- 2025四川绵阳富乐山九洲国际酒店有限公司财务日审员笔试历年参考题库附带答案详解
- 电工(高级)资格证考试考前冲刺练习及答案详解(基础+提升)
- 金太阳陕西省2025-2026学年高一上学期12月考试政治(26-167A)(含答案)
- 1807《经济学(本)》国家开放大学期末考试题库
- 2025年北京航空航天大学马克思主义基本原理概论期末考试模拟题带答案解析(必刷)
- 江苏省2025年普通高中学业水平合格性考试语文试卷(含答案)
- 2026年演出经纪人考试题库附参考答案(完整版)
- 美团代运营服务合同协议模板2025
- 2025年新修订版《森林草原防灭火条例》全文+修订宣贯解读课件(原创)
- 送出线路工程项目申请报告
- 法学毕业生个人求职简历模板
- 天津市中小学生思想品德发展水平评价指标(小学中高年级学段)
- 第17册中药成方制剂 卫生部颁药品标准
评论
0/150
提交评论