单链表的定义及基本操作文档格式.docx
- 文档编号:16078557
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:9
- 大小:42.60KB
单链表的定义及基本操作文档格式.docx
《单链表的定义及基本操作文档格式.docx》由会员分享,可在线阅读,更多相关《单链表的定义及基本操作文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
五、总结与体会
(调试程序的心得与体会,若实验课上未完成调试,要认真找出错误并分析原因等。
)
调试程序时,出现了许多错误。
如:
结构体类型指针出错,忽略了释放存储空间,对头插法建表、尾插法建表不熟悉等。
另外还有一些语法上的错误。
由于对所学知识点概念模糊,试验课上未能完成此次上机作业。
后来经过查阅教材,浏览网页等方式,才完成试验。
这次试验出现错误最重要的原因就是对课本知识点理解不深刻以及编写代码时的粗心。
以后要都去练习、实践,以完善自己的不足。
六、程序清单(包含注释)
//单链表
#include<
stdio.h>
malloc.h>
#defineOK1
#defineERROR0
typedefcharElemType;
typedefintStatus;
//线性表的单链表的存储结构
typedefstructLNode{
ElemTypedata;
structLNode*next;
}LNode,*LinkList;
//LinkList为结构体类型的指针,可以直接定义变量,比如LinkListp;
//建表(头插法)
voidCreatListF(LinkList&
L,ElemTypea[],intn)
{
//初始化线性表
L=(LinkList)malloc(sizeof(LNode));
//分配内存空间
L->
next=NULL;
//在表中插入元素
LinkListS;
inti;
//头插法
for(i=0;
i<
n;
i++)
{
S=(LinkList)malloc(sizeof(LNode));
//生成新结点
S->
data=a[i];
//数据域
next=L->
next;
L->
next=S;
}
}
//建表(尾插法)
voidCreatListR(LinkList&
LinkListp;
p=L;
//尾插法
p->
p=S;
p->
//初始化线性表
voidInitList(LinkList&
L)
//获得链表元素
StatusGetElem(LinkListL,inti,ElemType&
e)
//L为带头结点的单链表的头指针
intj;
//初始化,p指向第一个结点
p=L->
//j为计数器
j=1;
//顺指针往后查找,直到p指向第i个元素或p为空
while(p&
&
j<
i)
p=p->
j++;
//第i个元素不存在
if(!
p||j>
returnERROR;
//取第i个元素
e=p->
data;
returnOK;
//插入
StatusListInsert(LinkList&
L,inti,ElemTypee)
intj=0;
while(p!
=NULL&
i-1)//找第i-1个结点
i-1)
S=(LinkList)malloc(sizeof(LNode));
S->
data=e;
next=p->
//删除
StatusListDelete(LinkList&
L,inti,ElemType&
LinkListq;
while((p->
next)!
i-1)//找第i个结点
//!
(p->
next):
指向第i个结点的指针为空(第i个元素不存在)
next)||j>
q=p->
next=q->
e=q->
free(q);
//求表的长度
intListLength(LinkListL)
//线性链表最后一个结点的指针为空
=NULL)
returnj;
//输出
voidvisit(LinkListL)
printf("
%c"
p->
data);
//销毁:
要销毁的话从头结点开始依次free但要先得到下一个节点再free
voidDestroyList(LinkList&
free(p);
p=q;
q=p->
//free(p);
//判空
intListEmpty(LinkListL)
//为空表则执行该语句,否则返回return0;
return(L->
next==NULL);
//查找
intListSearch(LinkListL,ElemTypee)
inti=1;
data!
=e)
i++;
if(p==NULL)
return0;
returni;
intmain()
ElemTypee;
ElemTypea[6]={'
a'
'
b'
c'
d'
e'
f'
};
LinkListL;
//链表的头指针
printf("
头插法建表:
"
);
CreatListF(L,a,6);
visit(L);
\n\n"
//初始化
InitList(L);
初始化后的表:
尾插法建表:
CreatListR(L,a,6);
//初始化后表为空,此时不要调用GetElem()
GetElem(L,3,e);
表中第3个元素为:
%c\n\n"
e);
//在第5个位置插入字符'
k'
ListInsert(L,5,'
在表中第5个位置插入字符'
后:
表的长度为:
%d\n\n"
ListLength(L));
intz;
z=ListSearch(L,'
d是第%d个元素\n\n"
z);
ListDelete(L,2,e);
删除第2个元素:
//销毁
//DestroyList(L);
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单链表 定义 基本 操作