您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《数据结构》-实验报告模板(附实例)----实验一-线性表的基本操作实现
实验一线性表的基本操作实现及其应用一、实验目的1、熟练掌握线性表的基本操作在两种存储结构上的实现,其中以熟悉各种链表的操作为重点。2、巩固高级语言程序设计方法与技术,会用线性链表解决简单的实际问题。二、实验内容√1、单链表的表示与操作实现(*)2、约瑟夫环问题3、Dr.Kong的艺术品三、实验要求1、按照数据结构实验任务书,提前做好实验预习与准备工作。2、加“*”题目必做,其他题目任选;多选者并且保质保量完成适当加分。3、严格按照数据结构实验报告模板和规范,及时完成实验报告。四、实验步骤(说明:依据实验内容分别说明实验程序中用到的数据类型的定义、主程序的流程以及每个操作(成员函数)的伪码算法、函数实现、程序编码、调试与分析、总结、附流程图与主要代码)㈠、数据结构与核心算法的设计描述(程序中每个模块或函数应加注释,说明函数功能、入口及出口参数)1、单链表的结点类型定义/*定义DataType为int类型*/typedefintDataType;/*单链表的结点类型*/typedefstructLNode{DataTypedata;structLNode*next;}LNode,*LinkedList;2、初始化单链表LinkedListLinkedListInit(){//每个模块或函数应加注释,说明函数功能、入口及出口参数}3、清空单链表voidLinkedListClear(LinkedListL){//每个模块或函数应加注释,说明函数功能、入口及出口参数}4、检查单链表是否为空intLinkedListEmpty(LinkedListL){….}5、遍历单链表voidLinkedListTraverse(LinkedListL){….}6、求单链表的长度intLinkedListLength(LinkedListL){….}7、从单链表表中查找元素LinkedListLinkedListGet(LinkedListL,inti){//L是带头结点的链表的头指针,返回第i个元素}8、从单链表表中查找与给定元素值相同的元素在链表中的位置LinkedListLinkedListLocate(LinkedListL,DataTypex){……}9、向单链表中插入元素voidLinkedListInsert(LinkedListL,inti,DataTypex){//L为带头结点的单链表的头指针,本算法//在链表中第i个结点之前插入新的元素x}10、从单链表中删除元素voidLinkedListDel(LinkedListL,DataTypex){//删除以L为头指针的单链表中第i个结点}11、用尾插法建立单链表LinkedListLinkedListCreat(){……}㈡、函数调用及主函数设计(可用函数的调用关系图说明)㈢程序调试及运行结果分析㈣实验总结五、主要算法流程图及程序清单1、主要算法流程图:2、程序清单(程序过长,可附主要部分)说明:以后每次实验报告均按此格式书写。我在布置实验室时,仅给出实验名称、实验目的、实验内容及相关数据结构。题目一程序参考框架#includestdlib.h#includemalloc.h#includeiostream.h#includeconio.h#includestdio.h/*定义ElemType为int类型*/typedefintElemType;#defineTRUE1#defineFALSE0#defineNULL0#defineflag-1/*单链表的结点类型*/typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkedList;/*初始化单链表*/LinkedListLinkedListInit(){}/*清空单链表*/voidLinkedListClear(LinkedListL){}/*检查单链表是否为空*/intLinkedListEmpty(LinkedListL){}/*遍历单链表*/voidLinkedListTraverse(LinkedListL){}intLinkedListLength(LinkedListL){}LinkedListLinkedListGet(LinkedListL,inti){}LinkedListLinkedListLocate(LinkedListL,ElemTypex){}voidLinkedListInsert(LinkedListL,inti,ElemTypex){LinkedListpre,p,s;intj;pre=L;j=1;p=L-next;while(pre&&ji){pre=p;p=p-next;j++;}if(pre==NULL){printf(给的i值超过了表长);exit(0);}s=(LNode*)malloc(sizeof(LNode));s-data=x;pre-next=s;s-next=p;}voidLinkedListDel(LinkedListL,ElemTypex){LinkedListpre,p;intj;pre=L;j=1;p=L-next;while(p&&p-data!=x){pre=p;p=p-next;j++;}if(p==NULL){printf(表中没有值为x的结点);exit(0);}pre-next=p-next;free(p);}LinkedListLinkedListCreat(){LinkedListL=LinkedListInit(),p,r;ElemTypex;r=L;printf(pleaseinputdata,input-1isend\n);scanf(%d,&x);while(x!=flag){p=(LinkedList)malloc(sizeof(LNode));p-data=x;r-next=p;r=p;scanf(%d,&x);}r-next=NULL;returnL;}intscan(){intd;printf(pleaseinputtheoperation\n);printf(1.初始化2.清空3.求链表长度4.检查链表是否为空\n);printf(5.检查链表是否为满6.遍历链表7.从链表中查找元素\n);printf(8.从链表中查找与给定元素值相同的元素在顺序表中的位置\n);printf(9.向链表中插入元素10.从链表中删除元素\n);printf(其他键退出。。。。。\n);scanf(%d,&d);return(d);}main(){intquit=0;inti;ElemTypee;LinkedListL;while(!quit)switch(scan()){case1:….;break;case2:….;break;case3:….;break;case4:….;break;case5:LinkedListTraverse(L);break;case6:….;break;case7:….;break;case8:….;break;case9:….;break;case10:….;break;default:quit=1;}return0;}
本文标题:《数据结构》-实验报告模板(附实例)----实验一-线性表的基本操作实现
链接地址:https://www.777doc.com/doc-4714852 .html