欢迎来到天天文库
浏览记录
ID:57645512
大小:95.00 KB
页数:15页
时间:2020-08-30
《链表实验报告1.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一线性表的基本操作实现及其应用一、实验目的1、熟练掌握线性表的基本操作在两种存储结构上的实现。2、会用线性链表解决简单的实际问题。二、实验内容题目一链表基本操作该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。其中,程序中的单链表(带头结点)结点为结构类型,结点值为整型。单链表操作的选择以菜单形式出现,如下所示:pleaseinputtheoperation:1.初始化2.清空3.求链表长度4.检查链表是否为空5.检查链表是否为满6.遍历链表(设为输出元素)7.从链表中查找元素8.从链表中查找与给定元素值相
2、同的元素在表中的位置9.向链表中插入元素10.从链表中删除元素其他键退出。。。。。题目二约瑟夫环问题设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数。如此下去,直到所有人全部出列为止。令n最大值取30。要求设计一个程序模拟此过程,求出出列编号序列。structnode//结点结构{intnumber;/*人的序号*/intcipher;/*密码*/struct
3、node*next;/*指向下一个节点的指针*/};三.实验步骤题目一链表基本操作(一)、数据结构与核心算法的设计描述1、单链表的结点类型定义/*定义DataType为int类型*/typedefintDataType;/*单链表的结点类型*/typedefstructLNode{DataTypedata;structLNode*next;}LNode,*LinkedList;2、初始化单链表LinkedListLinkedListInit(){//函数功能:对链表进行初始化参数:链表(linklistL)成功初始化返回1,否则返回0}3、清空单链表voidLin
4、kedListClear(LinkedList&L){//函数功能:把链表清空参数:链表(linklistL)成功清空链表返回1}4、检查单链表是否为空intLinkedListEmpty(LinkedListL){//函数功能:判断链表是否为空参数:链表(linklistL)链表为空时返回0,不为空返回1}5、遍历单链表voidLinkedListTraverse(LinkedListL){//函数功能:遍历链表,输出每个节点的elem值参数:链表(linklistL)通过循环逐个输出节点的elem值}6、求单链表的长度intLinkedListLength(L
5、inkedListL){//函数功能:返回链表的长度参数:链表(linklistL)函数返回链表的长度}7、从单链表表中查找元素LinkedListLinkedListGet(LinkedListL,inti){//函数功能:从链表中查找有无给定元素参数;链表(linklistL),给定元素(inti)如果链表中有给定元素(i)则返回1,否则返回0}8、从单链表表中查找与给定元素值相同的元素在链表中的位置LinkedListLinkedListLocate(LinkedListL,DataTypex){//函数功能:从链表中查找给定元素的位置参数;链表(linkl
6、istL),给定元素(inti)如果链表中有给定元素i则返回元素的位置,没有则返回0}9、向单链表中插入元素voidLinkedListInsert(LinkedList&L,inti,DataTypex){//L为带头结点的单链表的头指针,本算法//在链表中第i个结点之前插入新的元素x}10、从单链表中删除元素voidLinkedListDel(LinkedList&L,DataTypex){删除以L为头指针的单链表中第i个结点}(二)、函数调用及主函数设计zhujiemian();cin>>a;do{switch(a){case1:if(init(L)==1)
7、cout<<"成功初始化!"<8、链表不满!
8、链表不满!
此文档下载收益归作者所有