资源描述:
《《数据结构实验报告》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
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;typed
3、efintElemType;typedefstructLNode{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&&j
6、next;++j;}if(!p
7、
8、j>i-1)returnERROR;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->nex
11、t;e=q->data;free(q);returnOK;}voidCreateList_L(LinkList&L,intn){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->
12、next;p;p=p->next)printf("%d",p->data);printf("");inte;scanf("%d",&i);GetElem_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("
13、");for(p=L->next;p;p=p->next)printf("%d",p->data);}然后进行调试,调试过程如下:1.c:documentsandsettingsxpclient桌面教学软件专区123.cpp(18):errorC2065:'p':undeclaredidentifier改正方法:在p=L->next;前加LinkListp;2.C:DocumentsandSettingsXPCLIENT桌面教学软件专区123.cpp(20):errorC2065:'j':undeclaredident
14、ifier改正方法:在j=0前加intj;2.C:DocumentsandSettingsXPCLIENT桌面教学软件专区123.cpp(35):erro