资源描述:
《数据结构实验报告2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学与计算科学学院实验报告实验项目名称线性表的链式表示所属课程名称数据结构(C语言版)实验类型验证型实验实验日期2011年10月28日班级信计1001班学号201053100127姓名徐超成绩9一、实验概述:【实验目的】1.掌握线性链表的逻辑结构特征:总存在第一个和最后一个元素;除第一个元素以外,每个元素总存在唯一一个直接前驱元素;除最后一个元素以外,每个元素总存在唯一一个直接后继元素。2.线性链表的特点:逻辑结构上相邻物理结构上不相邻;是一种随机的存储结构。3.通过上机实验验证顺序表的算法正确性,了解算法与程序的区别。【实验原理】线性链表的存储结构:用一组任意的存储单元存
2、储线性表的数据元素.【实验环境】VC++6.09二、实验内容:【实验方案】首先建立一个带表头节点的单链线性表,然后调用输入函数给每个节点赋值,然后调用插入和删除函数插入和删除元素。【实验过程】(实验步骤、记录、数据、分析)在输入窗口输入:#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefintElemType;typedefstructLNo
3、de{ElemTypedata;structLNode*next;}LNode,*LinkList;StatusGetElem_L(LinkListL,inti,ElemType&e){p=L->next;j=1;while(p&&jnext;++j;}if(!p
4、
5、j>i)returnERROR;e=p->data;returnOK;}StatusListInsert_L(LinkList&L,inti,ElemTypee){p=L;j=0;9while(p&&jnext;++j;}if(!p
6、
7、j>i-1)returnERROR;
8、s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;returnOK;}StatusListDelete_L(LinkList&L,inti,ElemType&e){p=Lj=0;while(p->next&&jnext;++j;}if(!(p->next)
9、
10、j>i-1)returnERROR;q=p->next;p->next=q->next;e=q->data;free(q);returnOK;}voidCreateList_L(LinkList&L,intn
11、){L=(LinkList)malloc(sizeof(LNode));L->next=NULL;for(i=n;i>0;--i){p=(LinkList)malloc(sizeof(LNode));scanf(&(p->data));p->next=L->next;L->next=p;}9}voidmain(){LinkListL;inti=5;LinkListp;CreateList_L(L,i);for(p=L->next;p;p=p->next)printf("%d",p->data);printf("");inte;scanf("%d",&i);GetElem
12、_L(L,i,e);printf("%d",e);printf("");scanf("%d%d",&i,&e);ListInsert_L(L,i,e);for(p=L->next;p;p=p->next)printf("%d",p->data);printf("");scanf("%d",&i);ListDelete_L(L,i,e);printf("%d",e);printf("");for(p=L->next;p;p=p->next)printf("%d",p->data);}然后进行调试,调试过程如下:1.c:documentsandsettingsx
13、pclient桌面教学软件专区123.cpp(18):errorC2065:'p':undeclaredidentifier改正方法:在p=L->next;前加LinkListp;2.C:DocumentsandSettingsXPCLIENT桌面教学软件专区123.cpp(20):errorC2065:'j':undeclaredidentifier改正方法:在j=0前加intj;2.C:DocumentsandSettingsXPCLIENT桌面教学软件专区123.cpp(35):er