欢迎来到天天文库
浏览记录
ID:35474862
大小:99.51 KB
页数:14页
时间:2019-03-25
《[修订]数据结构实验报告线性表的链式表示和实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、炉汐理工只联数学与计算科学学院实验报告实验项目名称:线性表的链式表示和实现所属课程名称:实验日期:2012年4月5号班级:信管10-02班学号:201044070218姓名:张松涛成绩:一、实验概述:【实验目的】(1)、线性表的逻辑结构特征。①、总存在第一个和最后一个元素。②、除笫一个元素以外,每一个元素总存在唯一一个直接前驱元素。③、除最后一个元索以外,每一个元索总存在唯一一个直接后驱元索。(2)、顺序表的特征。①、逻辑关系上相邻的物理位置上也相邻。②、是一种随机存储结构,可以用一个简单直观的公式来表示每一个元素的地址。(1)学会定义线性表的链式存储类型,
2、实现C程序的基木结构,对线性表的一些基本操作和具体的函数定义。掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。【实验原理】//线性表的单链表存储结构typedefstructLNode{ElemTypedata;struetLNode*next;}LNode,*LinkList;【实验环境】实验的环境:VC++二、实验内容:【实验方案】编写主函数,调用初始化,建立线性链表的算法以及插入和删除算法。调运行输入数据得岀结果并进行分析。【实验过程】(实验步骤、记录、数据、分析)将程序输入VC6.0中•includetinclu
3、deBdefineTRUE1tdefineFALSE0^defineOK1^defineERROR0•defineINFEASIBLE-1tdefineOUERFLOW-2typedeFintStatus;typedefintElemType;typedefstructLNodefElenTppedata;structLNode*next;}LNode9»LinkList;StatusListlnsertML(LlnkListSil9Int1.EleraTypee){LinkListp,s;Mtj;
4、P=L;while(p&&j5、p-p>nextj;}//if(!p6、7、j>i-DreturnERROR;s-(Linklist)nalloc(sizeof(iNode));s->data-e;s->next-p->next;p->ncxt-5;returnOK;//I1ct1ncortIStatusListDelete_L(LinlcLlst€iLvinti.EltRTppenext&ftjnextj;>if(?(p->next)8、9、returnERROR;q=p->next;p->next=q10、->next;e-q->data;free(q);returnOK;>//ListDelete-LvoidCreateList_L(LinkList&L9intn)O;—1)data);p・;L->next・p;>>//Crpatp11、1stJStatusGetElen_L(LinkListL.inti9ElenTyp12、eRe){Linklistp;intj;p-L->next;j-1;p-p->next;♦♦j;>13、j>i)returnERROR;e=p->data;returnOK;>//GetElen_LuoidrMinOnext;p?-NULL;p-p>next)〃输岀自己刚才卷入的数据printFC*%d"tp->data)14、;printFCAn*');printFC*^输入想查找第几个元素");scanf(td-t&1);〃古我元怎的位置GetElen_L(L,i,e);//^用算法2・色print*•请输入想左第匚个元素楼置前描入元素J;SCMF(•宅隐旷血忌);〃输入插入兀京的負昆Listlnsert_L(L,i,e>;〃调用算法2.9航〉、兀素for(p=L->next;pf=NULL;p=p->next)printFC^d•,»p->data);printFCAn-);〃畅出播入后的结果••吾洽X相抑强笙n水三壬・・、・scanFC^d",&i);〃输入姻除元素旳位萱L15、istDelete_L(L,i,e);//调用算法2
5、p-p>nextj;}//if(!p
6、
7、j>i-DreturnERROR;s-(Linklist)nalloc(sizeof(iNode));s->data-e;s->next-p->next;p->ncxt-5;returnOK;//I1ct1ncortIStatusListDelete_L(LinlcLlst€iLvinti.EltRTppenext&ftjnextj;>if(?(p->next)
8、
9、returnERROR;q=p->next;p->next=q
10、->next;e-q->data;free(q);returnOK;>//ListDelete-LvoidCreateList_L(LinkList&L9intn)O;—1)data);p・;L->next・p;>>//Crpatp11、1stJStatusGetElen_L(LinkListL.inti9ElenTyp12、eRe){Linklistp;intj;p-L->next;j-1;p-p->next;♦♦j;>13、j>i)returnERROR;e=p->data;returnOK;>//GetElen_LuoidrMinOnext;p?-NULL;p-p>next)〃输岀自己刚才卷入的数据printFC*%d"tp->data)14、;printFCAn*');printFC*^输入想查找第几个元素");scanf(td-t&1);〃古我元怎的位置GetElen_L(L,i,e);//^用算法2・色print*•请输入想左第匚个元素楼置前描入元素J;SCMF(•宅隐旷血忌);〃输入插入兀京的負昆Listlnsert_L(L,i,e>;〃调用算法2.9航〉、兀素for(p=L->next;pf=NULL;p=p->next)printFC^d•,»p->data);printFCAn-);〃畅出播入后的结果••吾洽X相抑强笙n水三壬・・、・scanFC^d",&i);〃输入姻除元素旳位萱L15、istDelete_L(L,i,e);//调用算法2
data);p・;L->next・p;>>//Crpatp
11、1stJStatusGetElen_L(LinkListL.inti9ElenTyp
12、eRe){Linklistp;intj;p-L->next;j-1;p-p->next;♦♦j;>13、j>i)returnERROR;e=p->data;returnOK;>//GetElen_LuoidrMinOnext;p?-NULL;p-p>next)〃输岀自己刚才卷入的数据printFC*%d"tp->data)14、;printFCAn*');printFC*^输入想查找第几个元素");scanf(td-t&1);〃古我元怎的位置GetElen_L(L,i,e);//^用算法2・色print*•请输入想左第匚个元素楼置前描入元素J;SCMF(•宅隐旷血忌);〃输入插入兀京的負昆Listlnsert_L(L,i,e>;〃调用算法2.9航〉、兀素for(p=L->next;pf=NULL;p=p->next)printFC^d•,»p->data);printFCAn-);〃畅出播入后的结果••吾洽X相抑强笙n水三壬・・、・scanFC^d",&i);〃输入姻除元素旳位萱L15、istDelete_L(L,i,e);//调用算法2
13、j>i)returnERROR;e=p->data;returnOK;>//GetElen_LuoidrMinOnext;p?-NULL;p-p>next)〃输岀自己刚才卷入的数据printFC*%d"tp->data)
14、;printFCAn*');printFC*^输入想查找第几个元素");scanf(td-t&1);〃古我元怎的位置GetElen_L(L,i,e);//^用算法2・色print*•请输入想左第匚个元素楼置前描入元素J;SCMF(•宅隐旷血忌);〃输入插入兀京的負昆Listlnsert_L(L,i,e>;〃调用算法2.9航〉、兀素for(p=L->next;pf=NULL;p=p->next)printFC^d•,»p->data);printFCAn-);〃畅出播入后的结果••吾洽X相抑强笙n水三壬・・、・scanFC^d",&i);〃输入姻除元素旳位萱L
15、istDelete_L(L,i,e);//调用算法2
此文档下载收益归作者所有