版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.题目一 线性结构的操作1.用线性表的顺序存储(数组)保存数据 输入要待查找的学号N输入的与学生里面的学号是否相等Y输出没有此人输出该信息算法的N-S图或流程图输入待删除的学号输入的与学生里面的学号是否相等NY 删除该学生学号没有该学生2.用线性表的链式存储(链表)保存数据s插入:C1 H HC1 S C2 H C1 Ci-1C1ps删除:An Ai-1- LAiA1PAi+1AI-1LAn AiA1 rinclude#includetypedef structint num; /学号char name10; /姓名student; /定义的抽象元素类型 Elemtypetypedef str
2、uct Node /*结点类型定义*/ student data; struct Node *next;Node, *LinkList; /* LinkList为结构指针类型*/static int count; /学生人数/带头结点的尾插入法创建链表void insert(LinkList head)LinkList p,q; /p代表的待插元素代入最后一个元素q=head; /q指向head结点printf(输入学生人数:);scanf(%d,&count);for(int i=0;idata.num); /输入结点p的数据学号printf(n输入姓名:);scanf(%s,p-data.
3、name); /输入结点的数据域姓名 name为数组类型 数组名为首地址 所有此处不需要地址符号if(i=0)head-next = p; /i=0 链表中没有元素只有头节点把插入到head之后else q-next = p; /链表中已有结点元素结点采用尾插入法q = p; /每插入一个元素就赋值于q q始终指向最后一个元素p-next = NULL; /设置next域为空void print(LinkList head)LinkList x; /定义一个链表结点x = head-next ; /该节点指向第一个元素printf(学生信息如下n);while(x) /存在结点printf(学
4、号%d 姓名%sn,x-data.num,); /输出该结点的数据域学号和姓名x = x-next ; /下一个元素printf(n);/把链表中的文件信息放入文件中/写入语句void savetofile(LinkList head)FILE*fp;LinkList p;p=head-next;if(fp=fopen(d:st2.txt,wb+)=NULL)printf(不能打开文件);return;while(p)fprintf(fp,%d%srn,p-data.num,);p=p-next;printf(n写入成功n);/功能菜单 提示性语句v
5、oid menu()printf(n0.退出 1.输入 2.输出 3.写入n);void main()int choice;LinkList l;l = (LinkList)malloc(sizeof(Node); /头结点申请空间l-next=NULL; /头结点的next为空menu();while(1)scanf(%d,&choice); /输入一个整数switch(choice)case 1:insert(l);menu();break;case 2: print(l); menu();break;default: exit(0);题目二 排序#includestdio.h#inclu
6、de stdlib.h#includetime.h#define TRUE 1#define FALSE 0typedef int KeyType;typedef int OtherType;#define MAXSIZE 200 /*线性表可能达到的最大长度*/typedef struct KeyType key;OtherType other_data;RecordType;void InsSort(RecordType r, int length)/* 对记录数组 r 做直接插入排序,length 为数组中待排序记录的数目*/int i,j;for (i=2; i=length; i+)
7、r0=ri; /*将待插入记录存放到监视哨 r0中*/j=i-1; while (r0.key rj.key ) /* 寻找插入位置 */rj+1= rj;j=j-1;rj+1=r0; /*将待插入记录插入到已排序的序列中*/ /* InsSort */void BubbleSort(RecordType r, int length )/*对记录数组 r 做冒泡排序,length 为数组的长度*/int n,i,j;int change;RecordType x;n=length;change=TRUE;for ( i=1 ; i= n-1 & change ;+i )change=FALSE
8、;for ( j=1 ; j rj+1.key )x= rj;rj= rj+1;rj+1= x;change=TRUE; /* BubbleSort */void SelectSort(RecordType r, int length)/*对记录数组 r 做简单选择排序,length 为数组的长度*/int i,j,k;int n;RecordType x;n=length;for ( i=1 ; i= n-1; +i)k=i;for ( j=i+1 ; j= n ; +j)if (rj.key rk.key )k=j;if ( k!=i)x= ri;ri= rk;rk=x; /* Selec
9、tSort */void sqrand(RecordType r)/获取随机数据 int i;int len;srand(time(NULL);/设置随机数种子。for(i=1;i=100;i+)ri.key = rand()%101;void out(RecordType r)for(int i=1;i=100;i+)printf(%5d,ri.key ); void menu()printf(n1 生成随机数 2 输出随机数 3 插入排序 4 冒泡排序 5 简单选择排序 其他 退出 n);int main()int len,n;RecordType rMAXSIZE;menu();len=
10、100;while(1)scanf(%d,&n);switch(n)case 1: sqrand(r);break;case 2: out(r);break;case 3:InsSort(r,len);break;case 4:BubbleSort(r,len);break;case 5:SelectSort(r,len);break;default :exit(0);break;menu();return 0;源程序清单宿舍结构体顺序存储结构定义如下:#define MAXSIZE 100typedef struct /学生住宿记录结构体char dormID10;int studentID
11、;char name10; char sex2;int age;dormitory;typedef struct /顺序表的存储结构 dormitory dorm MAXSIZE; /线性表占用的数组空间int last; /最后一个元素在数组中的位置(下标值),空表置为-1 SeqList;宿舍结构体链式存储结构定义如下:typedef struct dormitory /学生住宿记录结构体char dormID10;int studentID;char name10; char sex2;int age;dormitory;typedef struct Node /学生住宿记录结点stud
12、ent data; struct Node *next;Node, *LinkList; /LinkList为结构体指针类型题目一 线性结构的操作 1.用线性表的顺序存储(数组)保存数据(1)键盘输入你所在宿舍的同学信息到数组;(2)遍历输出所以学生数据;(3)按姓名查找并输出指定学生数据,统计查找的次数;(4)把数组内容输出到文件;(5)从文件读入学生数据,按学号排序后显示在屏幕;(6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;(7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果;题目一 线性结构的操作2.用线性表的链式存储(链表)保存数据(1)键盘输入你所在宿舍的同学信息
13、到数组;(2)遍历输出所以学生数据;(3)按姓名查找并输出指定学生数据,统计查找的次数;(4)把数组内容输出到文件;(5)从文件读入学生数据,按学号排序后显示在屏幕;(6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;(7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果;题目二 排序实习总结报告这次课程设计的心得体会通过实习我的收获如下:数据结构是计算机很基础的一门学科,但是学习就是要从基础学起.本次实训首先巩固课本上重要知识点,首先是一些基本操作,掌握线性表在单链存储结构中实现基本运算(查找、插入、删除、合并等)的算法,线性表在单向循环链表结构中实现基本运算(查找、插入、删除、
14、合并等)的算法1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。 编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。另外,要注意符号的使用,注意对字符处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度消防安全责任协议书编写规范
- 2024年紧急消火栓施工及安装服务协议版B版
- 2024新能源充电桩充电站设计与运营管理合同3篇
- 2025年货运从业资格考试题库
- 2024年高端技术研发与转让合同具体条款
- 2025-2031年中国爽肤水行业市场调查研究及发展趋势预测报告
- 中国城市规划建设行业市场发展现状及前景趋势与投资分析研究报告(2024-2030版)
- 2024年运动会场地租借合同
- 2024版二手住宅买卖合同(简约版)3篇
- 2025年度小额贷款合同书(资产保全)2篇
- 中国药典无菌、微生物限度和细菌内毒素检查方法学验证内容详解
- 《实用日本语应用文写作》全套电子课件完整版ppt整本书电子教案最全教学教程整套课件
- 公司员工手册-全文(完整版)
- 锅炉习题带答案
- 土木工程课程设计38281
- 农村宅基地地籍测绘技术方案
- 液压爬模作业指导书
- 剧院的建筑设计规范标准
- 遗传分析的一个基本原理是DNA的物理距离和遗传距离方面...
- 安全生产标准化管理工作流程图
- 初一英语单词辨音专项练习(共4页)
评论
0/150
提交评论