- 3
- 0
- 约6.51千字
- 约 16页
- 2019-01-02 发布于福建
- 举报
数据结构课程设计单链快表操作
《数据结构》课程设计报告内容及其格式
《数据结构课程设计》报告
题目: 单链表操作
专业: 计算机科学与技术
班级:
单链表操作
针对带头结点的单循环链表,编写实现以下操作的算法函数。
实现要求:
⑴ 单链表建立函数create:先输入数据到一维数组A[M]中,然后根据一维数组A[M]建立一个单循环链表,使链表中个元素的次序与A[M]中各元素的次序相同,要求该函数的时间复杂度为O(m);
⑵ 定位查找函数Locate:在所建立的单循环链表中查找并返回值为key的第1个元素的结点指针;若找不到,则返回NULL;
⑶ 求出该链表中值最大和次大的元素值,要求该算法的时间复杂度为O(m),最大和次大的元素值通过指针变量带回,函数不需要返回值;
⑷ 将链表中所有值比key(值key通过形参传入)小的结点作为值为key的结点前驱,所有值比key大的结点作为值为key的结点后继,并尽量保持原有结点之间的顺序,要求该算法的时间复杂度为O(m);
⑸ 设计一个菜单,具有上述处理要求和退出系统功能。
⒈ 本人完成的工作:
一、定义结构体:LNode
二、编写以下函数:
(1)建立单循环链表
(2)建立定位查找函数
(3)求出链表中最大和次大值
(4)将链表中的值和输入的Key比较,小的作为key前驱结点,大的作为key的后继结点
三、设计具有上述处理要求和退出系统菜单
⒉ 所采用的数据结构:单链表
数据结构的定义:
typedef struct Node //定义结点的结构体
{
DataType data; //数据域
struct Node *next; //指针域
}LNode; //结点的类型
⒊ 所设计的函数
Create(void)
LNode *Create(void) //建立单循环链表,链表头结点head作为返回值
{
int i,j,n,A[M]; //建立数组A【M】
LNode *head,*p,*move;
head=(LNode*)malloc(sizeof(LNode)); //创建空单循环链表
head-next=head;
move=head;
printf(请输入数组元素的个数:); //输入数组
scanf(%d,n);
printf(请输入数组:);
for(i=0;in;i++) //保存数组元素
scanf(%d,A[i]);
//勾链建表,使链表中元素的次序与数组A各元素次序相同
for(j=0;jn;j++) //根据一维数组A[M]建立一个单循环链表
{
p=(LNode*)malloc(sizeof(LNode));
p-data=A[j];
p-next=move-next;
move-next=p;
move=move-next;
}
return head; //返回头指针
}
开始
开始
定义变量:int i ,j,n,A[M];
LNode *head,*p,*move;
建立空单循环链表head
建立一维数组A【M】
j=0
Jn
if (A[j]==32767)break;
p=(LNode*)malloc(sizeof(LNode));
p-data=A[j];
p-next=move-next; //
move-next=p;
move=move-next;
结束
J++
Y
N
Locate(LNode *head,DataType key)
LNode *Locate(LNode *head,DataType key) //建立定位查找函数Locate
{
LNode *q=head-next;
//查找并返回值为key的第1个元素的结点指针;若找不到,则返回NULL
while(q!=head q-data!=key)
q=q-next;
if(q-data==key)
return q;
else
{
printf(查找的结点不存在!!\n);
return NULL;
}
}
Y
Y
开始
定义变量:
*q=head-next;;
结束
q!=headq-data!=key
q=q-next
q-data==key
return q
Return NULlL
Y
N
N
(3)Search(LNode *head,DataType *a,DataType *b)
//求链表的最大值和次大值,分别由*a和*b带回
void Search(LNode *he
您可能关注的文档
- 收藏的just5仁55前辈贴.docx
- 手把手教会将你电票操作.doc
- 手把手教你分玩转酷乐视q6无线互动投影.docx
- 手把手教你利用无线网卡发射车无线信号.doc
- 手把手教你制从作馈线焊接m头.doc
- 手表常用英语词汇(手表哥从业者必备).doc
- 手车式开关执行很以下停电操作顺序.doc
- 手机充电器直充片规格书.doc
- 手机商城销售系马统测试设计.doc
- 手脑双挥做模型---全面提升育人已才(图文).doc
- 2025包头希铝招聘52人笔试备考试题附答案.docx
- 2025包头东河区招聘27名基层医疗卫生机构事业编制专业技术人员考试参考题库附答案.docx
- 2025包头市青山区招聘200名社区工作者后备库储备人员(公共基础知识)综合能力测试题附答案.docx
- 2025北京中法实验学校招聘(公共基础知识)综合能力测试题附答案.docx
- 2025包头东河区招聘27名基层医疗卫生机构事业编制专业技术人员(公共基础知识)综合能力测试题附答案.docx
- 2025包头东河区招聘27名基层医疗卫生机构事业编制专业技术人员考试历年真题汇编附答案.docx
- 餐饮连锁品牌老年餐配送调研.pptx
- 深度解析(2026)《GBT 34996-2017 800900MHz射频识别读写设备规范》.pptx
- 乡镇餐饮店差评危机公关处理策略调研.pptx
- 2025北京大学未来技术学院招聘劳动合同制工作人员1人考试题库附答案.docx
最近下载
- 支部党员大会会议记录(支委会选举范例).docx VIP
- 深圳市宝安区2025-2026学年第一学期五年级语文期末学业质量评估卷(原卷+答案)统编版.docx VIP
- 山桐子种植加工、旅游项目可行性研究报告商业计划书.docx VIP
- 山桐子种植及种苗培育种植加工可行性研究报告申请备案.doc VIP
- 和田地区2026年度地直机关公开遴选公务员、事业单位公开选聘工作人员备考题库及完整答案详解1套.docx VIP
- 山桐子合作种植协议合同.docx VIP
- 2025年香氛未来趋势报告-英敏特.docx VIP
- 报告正文2014年太阳绿宝.pdf VIP
- 2025年高考:云南物理--试题及答案.pdf VIP
- 广东省深圳市宝安区2025-2026学年五年级上学期期末学业质量评估语文试卷.docx VIP
原创力文档

文档评论(0)