- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构上机实验 课后练习报告
姓名:冯天明
学号:
班级:通信141
2015年9月28日星期一
实验三:
编写一个程序,实现双链表的各种基本运算,并在此基础上设计一个主程序完成以下功能。
1.初始化双链表L
2.依次采用尾插法或者头插法插入元素a,b,c,d,e
3.输出双链表L
4.输出双链表的长度
5.判断双链表是否为空
6.输出双链表的第四个元素
7.输出元素a的位置
8.在第三个元素位置插入元素f
9.输出双链表L
10.删除双链表L的第四个元素
11.输出双链表L
12.释放双链表
#includestdio.h
#includemalloc.h
#includestdlib.h
#define OK 0
#define ERROR -2
#define OVERFLOW -1
typedef char ElemType;
typedef struct DuLNode //定义双向链表
{
ElemType data;
DuLNode *prior;
DuLNode *next;
}DuLNode,*DuLinkList;
void InitDuLinkList( DuLinkList h) //创建一个空表
{
h = new DuLNode;//(DuLinkList)malloc(sizeof(DuLNode));
h-next = h-prior;
}
void CreateDuLinkList(DuLinkList h,int n) //初始化链表
{
DuLNode *p,*q;
InitDuLinkList(h);
q = h;
printf(输入%个元素:\n,n);
for(int i = 0;in;i++)
{
p = (DuLinkList)malloc(sizeof(DuLNode));
scanf(%c,p-data);
fflush(stdin);
q-next = p;
p-prior = q;
q = p;
}
q-next = NULL;
}
int DestroyList(DuLinkList L) //销毁链表
{
DuLNode *p=L ;
while(L-next ) //直到达最后一个节点
{
p = L-next;
L-next = p-next;
free( p);
}
L-prior =NULL;
return OK;
}
int ListEmpty(DuLinkList L)
{
return (L-next == NULL L-prior == NULL);
}
DuLNode *GetElem(DuLinkList h,int i) //获取对应节点的元素
{
DuLNode *p;
p = h-next;
int j = 1;
while(pji)
{
p = p-next;
++j;
}
if(j == i)
return p;
else
return NULL;
}
int DuLinkListInser(DuLinkList h,int i,ElemType e)
{
DuLNode *p,*s;
p = GetElem(h,i-1);
if(!p) return ERROR;
s = (DuLinkList)malloc(sizeof(DuLNode));
s-data = e;
if(p-next) //如果插入的不是尾节点
{
p-next-prior = s;
s-next = p-next;
s-prior = p;
p-next = s;
}
else //插入的是尾节点
{
s-next = p-next;
p-next = s;
s-prior = p;
}
return OK;
}
int DeleListElem(DuLinkList L ,int i)
{
DuLNode *p,*q;
p = GetElem(L,i-1);
if(!p) return ERROR; //删除的元素不存在
if(p-next) //如果删除的不是最后一个节点
{
q = p-next;
q-next-prior = p;
p-next = q-next;
}
else
{
q = p-next;
p-next = NULL;
}
free( q);
return OK;
}
int LocateElem(DuLinkList L,ElemType e)
您可能关注的文档
- C语言聊天室代码服务端.doc
- C语言七种排序方法.pdf
- C语言期末考试试题库.doc
- c语言期末试题.doc
- c语言求出现次数最多的整数.doc
- C语言人事管理系统设计.doc
- C语言三角形平移变换.doc
- c语言实现互相关.doc
- c语言实现求水仙花数程序.doc
- c语言实现最小生成树算法.pdf
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].docx
- 情绪价值系列报告:春节消费抢先看-国证国际证券.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(解析版).docx
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].docx
- 液冷盲插快接头发展研究报告-全球计算联盟.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(原卷版).docx
- 精品解析:北京市东直门中学2024届高三考前练习数学试卷(解析版).docx
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第2章 人体的神经调节》大单元整体教学设计[2020课标].docx
文档评论(0)