




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.题目一 线性结构的操作1.用线性表的顺序存储(数组)保存数据输入要待查找的学号N输入的与学生里面的学号是否相等Y输出该信息输出没有此人算法的N-S图或流程图输入待删除的学号输入的与学生里面的学号 N是否相等Y没有该学生删除该学生学号编辑版.2.用线性表的链式存储(链表)保存数据插入:sH^C1^C1 ^HH
SCi-1 C2 C1 ^⋯C1s p删除:LA1⋯Ai-1-Ai⋯An^PLA1⋯AI-1AiAi+1⋯An^rinclude<stdio.h>#include<stdlib.h>typedefstruct{intnum;//学号编辑版.charname[10];//姓名}student; //定义的抽象元素类型 ElemtypetypedefstructNode /*结点类型定义*/{studentdata;structNode*next;}Node,*LinkList; /*LinkList为结构指针类型*/staticintcount; //学生人数带头结点的尾插入法创建链表voidinsert(LinkListhead){LinkListp,q; //p代表的待插元素代入最后一个元素q=head;//q指向head结点printf("输入学生人数:");scanf("%d",&count);编辑版.for(inti=0;i<count;i++){printf("\n输入第%d个学生信息:\n",i+1);p=(LinkList)malloc(sizeof(Node)); //结点p申请一个空间printf("输入学号:");scanf("%d",&p->data.num);//输入结点p的数据°学号printf("\n输入姓名:");scanf("%s",p->);//输入结点的数据域姓名 name为数组类型 数组名为首地址 所有此处不需要地ì址符号if(i==0){head->next=p;//i=0 链表中没有元素只有头节点把插入到 head之后}else{q->next=p; //链表中已有结点元素结点采用尾插入法}q=p; //每插入一个元素就赋值于 q q始终指向最后一个元素编辑版.}p->next=NULL;//设置next域为空}voidprint(LinkListhead){LinkListx; //定义一个链表结点x=head->next;//该节点指向第一个元素printf("学生信息如下\n");while(x)//存在结点{printf("学号%d姓名%s\n",x->data.num,x->);//输出该结点的数据域学号和姓名x=x->next;//下一个元素}printf("\n");}把链表中的文件信息放入文件中写入语句编辑版.voidsavetofile(LinkListhead){FILE*fp;LinkListp;p=head->next;if((fp=fopen("d:\\st2.txt","wb+"))==NULL){printf("不能打开文件");return;}while(p){fprintf(fp,"%d%s\r\n",p->data.num,p->);p=p->next;}printf("\n写入成功\n");}功能菜单提示性语句编辑版.voidmenu(){printf("\n0.退出1.输入 2.输出3.写入\n");}voidmain(){intchoice;LinkListl;l=(LinkList)malloc(sizeof(Node));//头结点申请空间l->next=NULL;//头结点的next为空menu();while(1){scanf("%d",&choice);//输入一个整数switch(choice){case1: insert(l);menu();break;编辑版.case2:print(l);menu();break;default:exit(0);}}}题目二 排序#include"stdio.h"#include"stdlib.h"#include"time.h"#defineTRUE1#defineFALSE0typedefintKeyType;typedefintOtherType;#defineMAXSIZE200/*线性表可能达到的最大长度 */typedefstruct编辑版.{KeyTypekey;OtherTypeother_data;}RecordType;voidInsSort(RecordTyper[],intlength)/* 对记录数组 r做直接插入排序,length为数组中待排序记录的数目 */{inti,j;for(i=2;i<=length;i++){r[0]=r[i];/*将待插入记录存放到监视哨 r[0]中*/j=i-1;while(r[0].key<r[j].key)/*寻找插入位置 */{r[j+1]=r[j];j=j-1;}r[j+1]=r[0]; /*将待插入记录插入到已排序的序列中 */}}/*InsSort*/voidBubbleSort(RecordTyper[],intlength)/*对记录数组 r做冒泡排序,length为数组的长度*/{编辑版.intn,i,j;intchange;RecordTypex;n=length;change=TRUE;for(i=1;i<=n-1&&change;++i){change=FALSE;for(j=1;j<=n-i;++j)if(r[j].key>r[j+1].key){x=r[j];r[j]=r[j+1];r[j+1]=x;change=TRUE;}}}/*BubbleSort*/voidSelectSort(RecordTyper[],intlength)/*对记录数组 r做简单选择排序,length为数组的长度*/{编辑版.inti,j,k;intn;RecordTypex;n=length;for(i=1;i<=n-1;++i){k=i;for(j=i+1;j<=n;++j)if(r[j].key<r[k].key)k=j;if(k!=i){x=r[i];r[i]=r[k];r[k]=x;}}}/*SelectSort*/voidsqrand(RecordTyper[])//获取随机数据{inti;intlen;编辑版.srand(time(NULL));//设置随机数种子。for(i=1;i<=100;i++){r[i].key=rand()%101;}}voidout(RecordTyper[]){for(inti=1;i<=100;i++){printf("%5d",r[i].key);}}voidmenu(){printf("\n1 生成随机数 2输出随机数 3插入排序 4冒泡排序 5简单选择排序其他退出\n");}intmain(){intlen,n;编辑版.RecordTyper[MAXSIZE];menu();len=100;while(1){scanf("%d",&n);switch(n){case1:sqrand(r);break;case2:out(r);break;case3:InsSort(r,len);break;case4:BubbleSort(r,len);break;case5:SelectSort(r,len);break;default:exit(0);break;}menu();}return0;}源程序清单宿舍结构体顺序存储结构定义如下:#defineMAXSIZE100编辑版.typedef struct //学生住宿记录结构体{chardormID[10];intstudentID;char name[10];charsex[2];intage;}dormitory;typedef struct //顺序表的存储结构{dormitorydorm[MAXSIZE]; //线性表占用的数组空间intlast;//最后一个元素在数组中的位置(下标值),空表置为 -1}SeqList;宿舍结构体链式存储结构定义如下:typedef structdormitory//学生住宿记录结构体{chardormID[10];intstudentID;char name[10];charsex[2];intage;}dormitory;编辑版.typedef structNode//学生住宿记录结点{studentdata;struct Node *next;}Node,*LinkList; //LinkList为结构体指针类型题目一 线性结构的操作1.用线性表的顺序存储(数组)保存数据1)键盘输入你所在宿舍的同学信息到数组;2)遍历输出所以学生数据;3)按姓名查找并输出指定学生数据,统计查找的次数;4)把数组内容输出到文件;5)从文件读入学生数据,按学号排序后显示在屏幕;6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果;题目一 线性结构的操作2.用线性表的链式存储(链表)保存数据1)键盘输入你所在宿舍的同学信息到数组;2)遍历输出所以学生数据;3)按姓名查找并输出指定学生数据,统计查找的次数;4)把数组内容输出到文件;编辑版.5)从文件读入学生数据,按学号排序后显示在屏幕;6)某同学调入你的宿舍,请增加其信息;并查看增加后的结果;7)某同学调离你的宿舍,请删除其信息,并查看删除后的结果;题目二排序实习总结报告这次课程设计的心得体会通过实习我的收获如下 :数据结构是计算机很基础的一门学科,但是学习就是要从基础学起 .本次实训首先巩固课本上重要知识点,首先是一些基本操作,掌握线性表在单链存储结构中实现基本运算(查找、插入、删除、合并等)的算法,线性表在单向循环链表结构中实现基本运算 (查找、插入、删除、合并等)的算法 1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。 3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。 4、通过课程设计,培养了我严肃认真的工作作风, 逐步建立正确的生产观念、 经济观念和全局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。编程时要认真仔细,出现错误要及时找出并改正, (其中对英语的要求也体现出来了,因为它说明错误的时候都是英语) 遇到问题要去查相关的资料。 反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面编辑版.做一些建议,正所谓当局者迷旁观者清, 把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格, 从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 定制旅行路线协议
- 植物油脂化学成分分析考核试卷
- 涂料店铺顾客引流策略考核试卷
- 笔的书写力道调节考核试卷
- 石油开采安全生产考核试卷
- 电子出版物线上线下融合发展趋势考核试卷
- 经济型连锁酒店品牌竞争力分析考核试卷
- 聚氧化乙烯纤维单体制备考核试卷
- 纺织原料预处理设备考核试卷
- 租赁合同模板设计与条款完善考核试卷
- 解读功能性食品研发
- 京东自营购买合同范例
- 急性胰腺炎护理查房-5
- 公务用车分时租赁实施方案
- DB3301∕T 0451-2024 医学美容机构电子病历系统技术规范
- 《大国浮沉500年:经济和地理背后的世界史》记录
- 水工维护初级工技能鉴定理论考试题库(含答案)
- 运维项目进度计划
- 商场中央空调租赁协议模板
- 十八项核心制度
- 浙江省杭州市2023-2024学年六年级下学期期中模拟测试数学试卷(人教版)
评论
0/150
提交评论