链表实验报告1.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
实验 一 线性表的基本操作实现及其应用 一、实验目的 1、熟练掌握线性表的基本操作在两种存储结构上的实现。 2、会用线性链表解决简单的实际问题。 二、实验内容 题目一 链表基本操作 该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操 作的具体的函数定义和主函数。其中,程序中的单链表(带头结点)结点为结构类型, 结点值为整型。单链表操作的选择以菜单形式出现,如下所示: please input the operation: 1.初始化 2.清空 3.求链表长度 4.检查链表是否为空 5.检查链表是否为满 6.遍历链表(设为输出元素)7.从链表中查找元素 8.从链表中查找与给定元素值相同的元素在表中的位置 9.向链表中插入元素 10. 从链表中删除元素 其他键退出。。。。。 题目二 约瑟夫环问题 设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数 密码。开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报 数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重 新从1报数。如此下去,直到所有人全部出列为止。令n最大值取30。要求设计一个程序 模拟此过程,求出出列编号序列。 struct node //结点结构 { int number; /* 人的序号 */ int cipher; /* 密码 */ struct node *next; /* 指向下一个节点的指针 */ }; 三.实验步骤 题目一 链表基本操作 (一)、数据结构与核心算法的设计描述 1、单链表的结点类型定义 /* 定义DataType为int类型 */ typedef int DataType; /* 单链表的结点类型 */ typedef struct LNode { DataType data; struct LNode *next; }LNode,*LinkedList; 2、初始化单链表 LinkedList LinkedListInit() { //函数功能:对链表进行初始化 参数:链表(linklist L) 成功初始化返回1,否则返回0 } 3、清空单链表 void LinkedListClear(LinkedList &L) {//函数功能:把链表清空 参数:链表(linklist L) 成功清空链表返回1 } 4、 检查单链表是否为空 int LinkedListEmpty(LinkedList L) { //函数功能:判断链表是否为空 参数:链表(linklist L) 链表为空时返回0,不为空返回1 } 5、 遍历单链表 void LinkedListTraverse(LinkedList L) { //函数功能:遍历链表,输出每个节点的elem值 参数:链表(linklist L) 通过循环逐个输出节点的elem值 } 6、 求单链表的长度 int LinkedListLength(LinkedList L) { //函数功能:返回链表的长度 参数:链表(linklist L) 函数返回链表的长度 } 7、 从单链表表中查找元素 LinkedList LinkedListGet(LinkedList L,int i) { //函数功能: 从链表中查找有无给定元素 参数;链表(linklist L),给定元素(int i) 如果链表中有给定元素(i)则返回1,否则返回0 } 8、从单链表表中查找与给定元素值相同的元素在链表中的位置 LinkedList LinkedListLocate(LinkedList L, DataType x) {//函数功能: 从链表中查找给定元素的位置 参数;链表(linklist L),给定元素(int i) 如果链表中有给定元素i则返回元素的位置, 没有则返回0 } 9、 向单链表中插入元素 void LinkedListInsert(LinkedList &L,int i,DataType x) { // L 为带头结点的单链表的头指针,本算法 // 在链表中第i 个结点之前插入新的元素 x } 10、 从单链表中删除元素 void LinkedListDel(LinkedList &L,DataType x) { 删除以 L 为头指针的单链表中第 i 个结点 } (二)、函数调用及主函数设计 zhujiemian(); cin>>a; do { switch(a) { case 1: if(init(L)==1) cout<<"成功初始化!"<<endl; else cout<<"初始化失败!"<<endl; break; case 2: if(makeempty(L)==1) cout<<"链表
剩余16页未读,继续阅读
- 粉丝: 168
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 聊天系统(java+applet).zip
- 毕业设计:基于SSM的mysql-高校学生请假管理系统(源码 + 数据库 + 说明文档)
- 博客系统(struts+hibernate+spring).rar
- c语言学生成绩管理系统源码.zip
- 毕业设计:基于SSM的mysql-网约车用户服务平台(源码 + 数据库 + 说明文档)
- 内容管理系统(hibernate3+struts2+spring2)130224.rar
- 基于Java的班级管理系统课程设计源码
- 内容管理系统(hibernate3+struts2+spring2).rar
- 路由器刷breed Web控制台助手v5.8版本.rar
- Java 在 JEP 12 提供的特性预览
- 1
- 2
前往页