下载此文档

数据结构实验一线性表及其应用.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
该【数据结构实验一线性表及其应用 】是由【春霞】上传分享,文档一共【6】页,该文档可以免费在线阅读,需要了解更多关于【数据结构实验一线性表及其应用 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。实验一线性表及其应用
一、实验目的
,进一步掌握C语言的结构特点;
;
——单链表的定义及C语言实现;
;
——单链表中的各种基本操作;
二、实验内容
、插入及删除;
、插入及删除;
三、实验步骤
;
={21,23,14,5,56,17,31},然后在第i个位置插入元素68;
,结点的值域为整型数据;要求将用户输入的数据按尾插入法来建立相应单链表;
四、实现提示
,一维数组的机内表示就是顺序结构;因此,可用C语言的一维数组实现线性表的顺序存储;
在此,我们利用C语言的结构体类型定义顺序表:
defineMAXSIZE 1024
typedef int elemtype;   / 线性表中存放整型元素 /
typedefstruct
{elemtypevecMAXSIZE;
 intlen;            / 顺序表的长度 /
 }sequenlist;
将此结构定义放在一个头文件里,可避免在后面的参考程序中代码重复书写,另外在该头文件里给出顺序表的建立及常量的定义;
,在插入过程中注意溢出情况以及数组的下标与位序顺序表中元素的次序的区别;
,还含有一个指针域;用C语言描述结点结构如下:
   typedefintelemtype;
typedefstructnode
   {elemtypedata;  如果按由表尾至表头的次序输入数据元素,应如何建立顺序表;
=&a语句,会出现什么结果
六、完整参考程序
、插入及删除;
include<>
include<>
defineMAX30示所有元素\n";
printf"\n";
printf"\n";
printf"\n";
printf"\n";
scanf"%c",&j;
switchj
{case'1':printS;break;式线性表的建立、插入及删除;
include<>
include<>
include<>
defineLENsizeofLNode示所有元素\n";入一个元素\n";除一个元素\n";关键字查找元素\n";序号查找元素\n";出程序\n";//退出
scanf"%c",&j;
switchj
{case'1':ListPrintL;break;
case'2':{printf"请输入元素一个字符和要插入的位置:\n";
printf"格式:字符,位置;例如:a,3\n";
scanf"%c,%d",&ch,&loc;//输入要插入的元素和要插入的位置
temp=ListInsertL,loc,ch;//插入
iftemp==Falseprintf"插入失败\n";//插入失败
elseprintf"插入成功\n";//成功插入
ListPrintL;
break;
}
case'3':printf"请输入要删除的元素所在位置:";
scanf"%d",&loc;//输入要删除的节点的位置
temp=ListDeleteL,loc,ch;//删除
iftemp==Falseprintf"删除失败\n";//删除失败
elseprintf"成功删除了一个元素:%c\n",ch;//删除成功,显示该元素
ListPrintL;
break;
case'4':ifL->next==NULL//链表为空
printf"链表为空\n";
else{printf"请输入要查找的元素一个字符:";
scanf"%c",&ch;//输入要查找的元素
temp=ListFind_keywordL,ch,loc;//按关键字查找
iftemp==Falseprintf"没有找到该元素\n";//查找失败
elseprintf"该元素在链表的第%d个位置;\n",loc;
//成功查找,显示该元素位置
}
break;
case'5':ifL->next==NULL//链表为空
printf"链表为空\n";
else{printf"请输入要查找的位置:";
scanf"%d",&loc;//输入要查找的元素的位置
temp=ListFind_orderL,ch,loc;//按序号查找
iftemp==Falseprintf"该位置不存在\n";//查找失败
elseprintf"第%d个元素是:%c\n",loc,ch;
//成功查找,显示该元素
}
break;
default:flag=0;printf"程序结束,按任意键退出\n";
}
}
getch;
}
voidCreatListLinkList&v,intn
{//生成一个带头结点的有n个元素的单链表
inti;
LinkListp;
v=LinkListmallocLEN;//生成头结点
v->next=NULL;
printf"请输入%d个字符:例如:abcdefg\n",n;
getchar;
fori=n;i>0;--i
{p=LinkListmallocLEN;//生成新结点
scanf"%c",&p->data;
p->next=v->next;
v->next=p;
}
}
BOOLListInsertLinkList&v,inti,chare
{//在单链表的第i各位置插入元素e,成功返回True,失败返回False
LinkListp,s;
intj=0;
p=v;
whilep&&j<i-1{p=p->next;++j;}//查找第i-1个元素的位置
ifp||j>i-1returnFalse;//没有找到
s=LinkListmallocLEN;//生成一个新结点
s->data=e;
s->next=p->next;//将新结点插入到单链表中
p->next=s;
returnTrue;
}
BOOLListDeleteLinkList&v,inti,char&e
{//在单链表中删除第i个元素,成功删除返回True,并用e返回该元素值,失败返回False
LinkListp,q;
intj=0;
p=v;
whilep->next&&j<i-1//查找第i-1个元素位置
{p=p->next;++j;}
ifp->next||j>i-1returnFalse;//查找失败
q=p->next;p->next=q->next;//删除该元素
e=q->data;//e取得该元素值
freeq;//释放该元素空间
returnTrue;
}
BOOLListFind_keywordLinkListv,chare,int&i
{//在单链表中查找关键字为e的元素,成功返回True,并用i返回该元素位置,
//失败返回False
i=1;
LinkListp;
p=v->next;
whilep->data=e&&p->next=NULL//p指针指向下一个,直到
{p=p->next;i++;}//找到或到链表尾为止
ifp->data=e//该元素在链表中不存在
returnFalse;
elsereturnTrue;
}
BOOLListFind_orderLinkListv,char&e,inti
{//在单链表中查找第i个元素,成功返回True,并用e返回该元素值,
//失败返回False
LinkListp;
intj=0;
p=v;
whilep->next&&j<i//移动指针,直到找到第i个元素
{p=p->next;++j;}
ifj=ireturnFalse;//查找失败
else{e=p->data;//查找成功,用e取得该元素值
returnTrue;
}
}
voidListPrintLinkListv
{//显示链表所有元素
LinkListq;
q=v->next;
printf"链表所有元素:";
whileq=NULL
{printf"%c",q->data;q=q->next;}
printf"\n";
}

数据结构实验一线性表及其应用 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人春霞
  • 文件大小25 KB
  • 时间2022-10-20
最近更新