- 20
- 0
- 约2.16千字
- 约 4页
- 2020-11-30 发布于山东
- 举报
实验一
要求:①建立双向循环链表
②实现链表的插入、删除
运行程序点此处
实验程序源代码:
#include
#include
#include
#define OVERFLOW -2
#define ERROR 0
#define OK 1
typedef int status;
双向循环链表的存储结构
typedef struct DuLNode
{
int data;
int Length;
struct DuLNode *prior;
struct DuLNode *next;
} DuLNode,*DuLinkList;
构建一个空的双向循环链表
void InitList(DuLNode **p)
{
*p=(DuLNode *)malloc(sizeof(DuLNode));
if(*p)
{
(*p)-next=(*p)-prior=*p;
(*p)-Length=0;
}
else
exit(OVERFLOW);
}
双向循环链表的创建
void Create(DuLinkList L,int n)
{
// 输入 n 个元素的值,建立带头结点的双线循环链表 L
DuLinkList p=L,q;
int i;
for(i=1;i=n;i++)
{
q=(DuLinkList)malloc(sizeof(DuLNode));
printf( 您该输入第 %d个元素的值了 :,i);
scanf(%d,q-data);
p-next =q;
q-prior=p;
q-next=L;
L-prior =q;
p=q;
L-Length ++;
}
}
查找元素的位置
DuLinkList GetElemP(DuLinkList h,int i)
{
int j;
DuLinkList p=h;
for(j=1;j=i;j++)
p=p-next ;
return p;
}
结点的插入
status Listinsert(DuLNode *m,int i,int e)
{
// 在带头结点的双链循环线性表 L 中第 i 个位置之前插入元素 e,i 的合法值为 1≤i ≤
表长
DuLinkList p,q;
if(i1||i(m-Length)) // i 值不合法
return ERROR;
p=GetElemP(m,i);
if(!p)
return ERROR;
q=(DuLinkList)malloc(sizeof(DuLNode));
if(!q)
return OVERFLOW;
q-data=e;
q-prior=p-prior;
p-prior-next=q;
q-next=p;
p-prior=q;
m-Length++;
printf( 您在双向循环链表第 %d个位置之前插入了一结点元素 :%d\n,i,e); return OK;
}
结点的删除
status ListDelete(DuLinkList L,int i)
{
// 删除带头结点的双链循环线性表 L 的第 i 个元素, i 的合法值为 1≤ i ≤表长
DuLinkList p;
if(i1) /* i 值不合法 */
return ERROR;
p=GetElemP(L,i);
if(!p)
return ERROR;
p-prior-next=p-next;
p-next-prior=p-prior;
L-Length --;
printf( 删除了双线循环链表中第 %d个结点 , 元素值为 :%d\n,i,p-data); free(p);
return OK;
}
结点的输出
void Display( DuLinkList L)
{ DuLinkList p;
printf( 双向循环链表中的结点的数据为 :);
for(p=L-next ;p-next !=L;)
{
printf(%d,p-data);
printf( );
p=p-next ;
}
printf(%d\n,p-data );
}
主函数实现链表的创建,插入,删除等操作
void main()
{
DuLinkList L;
int n,i;
InitList(L) ;
printf( 你想创建几个循环节点就输入几就行啦,请输入 :); scanf(%d,n);
Create(L,n);
Listinsert(L,3,3);// 结点的插入
printf( 您想删除哪个结点呢 );
scanf(%d,i);
printf( 您确定删除此结点吗 1:YES 2:NO (回复数字确认) );
if(i=2)
{
printf( 您想删除哪个结点呢 );
scanf(%d,i);
ListDelete(L,i);
}
else
{ListDe
您可能关注的文档
- 教师个人发展规划模板.docx
- 教师仪容仪表规范要求_礼仪.docx
- 教师招聘易错-心理学错题.docx
- 教师招聘考试如何写好教案.docx
- 教师招聘考试:公共基础知识汇总.docx
- 教师晋级自我鉴定400字().docx
- 教师用高级财务会计题库.docx
- 教师的心理健康与心理调适.docx
- 教师节中小学校长致辞.docx
- 教师节写给老师的话-祝福句子.docx
- 2025年广东省初中学业水平考试模拟测试2卷数学试题(解析版)-A4.docx
- 2026年湿度传感器行业本土品牌与市场竞争力报告.docx
- 2026年角度传感器行业技术革新与市场竞争分析.docx
- 2026年2026年锂电池石墨负极材料产能扩张与竞争格局报告.docx
- 2026年服务业围棋培训机构数字化营销报告.docx
- 2026年天然饮料消费趋势及产品创新趋势研究报告.docx
- 2026年饮用水行业市场竞争及品牌推广分析.docx
- 2026年新能源区块链发展路径分析报告.docx
- 2026年物联网行业应用场景拓展与智慧环保数字化报告.docx
- 2026年新能源智能微电网技术专利分析报告.docx
原创力文档

文档评论(0)