单链表.docx

上传人:b****3 文档编号:2919859 上传时间:2022-11-16 格式:DOCX 页数:17 大小:17.25KB
下载 相关 举报
单链表.docx_第1页
第1页 / 共17页
单链表.docx_第2页
第2页 / 共17页
单链表.docx_第3页
第3页 / 共17页
单链表.docx_第4页
第4页 / 共17页
单链表.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

单链表.docx

《单链表.docx》由会员分享,可在线阅读,更多相关《单链表.docx(17页珍藏版)》请在冰豆网上搜索。

单链表.docx

单链表

#include

#include

typedefstructLNode

{

intdata[3];

structLNode*next;

}LNode,*LinkList;

intflag1=1,flag2=1,flag3=0;

voidwelcome();

voidCreateList(LinkList&L);

voidSearch(LinkListLA,LinkListLB);

intSearch_L(LinkListL,intFlag);

voidDelete(LinkList&LA,LinkList&LB);

intDelete_L(LinkList&L,intFlag);

voidInsert(LinkList&LA,LinkList&LB);

intInsert_L(LinkList&L,intFlag);

voidDestroy(LinkList&LA,LinkList&LB);

voidDestroy_L(LinkList&L,int&Flag);

voidMerge(LinkListLA,LinkListLB,LinkList&LC);

voidOutput(LinkListLA,LinkListLB,LinkListLC);

intOutput_L(LinkListL,intFlag);

voidmain()

{

inta=1;

LinkListLA,LB,LC;

welcome();

printf("请在单链表LA中输入数据,按0键结束(0不作为单链表中数据)\n");

CreateList(LA);

printf("\n\n请在单链表LB中输入数据,按0键结束(0不作为单链表中数据)\n");

CreateList(LB);

system("cls");

while(a)

{

printf("\n\n\n");

printf("\t\t\t\t主菜单\n\n");

printf("\t\t-----------------------------------------\n\n");

printf("\t\t\t1——查找单链表中的元素\n\n");

printf("\t\t\t2——删除单链表中的元素\n\n");

printf("\t\t\t3——在单链表中插入元素\n\n");

printf("\t\t\t4——销毁单链表\n\n");

printf("\t\t\t5——创建新的单链表\n\n");

printf("\t\t\t6——合并单链表\n\n");

printf("\t\t\t7——输出单链表\n\n");

printf("\t\t\t0——退出\n\n");

scanf("%d",&a);

switch(a)

{

case1:

system("cls");

Search(LA,LB);

break;

case2:

system("cls");

Delete(LA,LB);

break;

case3:

system("cls");

Insert(LA,LB);

break;

case4:

system("cls");

Destroy(LA,LB);

break;

case5:

system("cls");

if(flag1==0)

{

printf("请在单链表LA中输入数据,按0键结束(0不作为单链表中数据)\n");

CreateList(LA);

flag1=1;

}

elseif(flag2==0)

{

printf("请在单链表LB中输入数据,按0键结束(0不作为单链表中数据)\n");

CreateList(LB);

flag2=1;

}

else

printf("销毁LA或LB后才能创建新的单链表");

getchar();

system("cls");

break;

case6:

system("cls");

Merge(LA,LB,LC);

break;

case7:

system("cls");

Output(LA,LB,LC);

break;

case0:

system("cls");

Destroy_L(LA,flag1);

Destroy_L(LB,flag2);

printf("\n\n\n\n\n\n\n\n\t\t\t\t谢谢使用\n\n\n\n\n\n\n\n\n\n\n\n");

break;

}

}

}

voidwelcome()

{

printf("\n\n\n\n\n\n\n\n\n\t\t\t\t欢迎使用");

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n按Enter键→");

getchar();

system("cls");

}

voidCreateList(LinkList&L)

{

LinkListp,q;

L=(LinkList)malloc(sizeof(LNode));

L->data[0]=0;

L->next=NULL;

q=L;

while

(1)

{

p=(LinkList)malloc(sizeof(LNode));

scanf("%d",&p->data[0]);

if(p->data[0]==0)

break;

p->data[2]=p->data[1]=p->data[0];

q->next=p;

q=p;

L->data[0]++;

}

q->next=NULL;

}

voidSearch(LinkListLA,LinkListLB)

{

inta=1;

while(a)

{

printf("\n\n\n");

printf("\t\t\t\t主菜单\n\n");

printf("\t\t-----------------------------------------\n\n");

printf("\t\t\t1——查找单链表LA中的元素\n\n");

printf("\t\t\t2——查找单链表LB中的元素\n\n");

printf("\t\t\t0——退出\n\n");

scanf("%d",&a);

switch(a)

{

case1:

system("cls");

Search_L(LA,flag1);

break;

case2:

system("cls");

Search_L(LB,flag2);

break;

case0:

system("cls");

break;

}

}

}

intSearch_L(LinkListL,intFlag)

{

inta,i;

LinkListp;

if(Flag==0)

{

printf("此单链表已被销毁");

return0;

}

p=L->next;

printf("请输入要查找元素的位置(1~%d):

",L->data[0]);

scanf("%d",&a);

for(i=1;i

p=p->next;

printf("\n\n此单链表中第%d个元素为:

%d",a,p->data[0]);

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n按Enter键→");

getchar();getchar();

system("cls");

return1;

}

voidDelete(LinkList&LA,LinkList&LB)

{

inta=1;

while(a)

{

printf("\n\n\n");

printf("\t\t\t\t主菜单\n\n");

printf("\t\t-----------------------------------------\n\n");

printf("\t\t\t1——删除单链表LA中的元素\n\n");

printf("\t\t\t2——删除单链表LB中的元素\n\n");

printf("\t\t\t0——退出\n\n");

scanf("%d",&a);

switch(a)

{

case1:

system("cls");

Delete_L(LA,flag1);

break;

case2:

system("cls");

Delete_L(LB,flag2);

break;

case0:

system("cls");

break;

}

}

}

intDelete_L(LinkList&L,intFlag)

{

inta,i=0;

LinkListp=L,q;

if(Flag==0)

{

printf("此单链表已被销毁");

return0;

}

printf("请输入要删除元素的位置(1~%d):

",L->data[0]);

scanf("%d",&a);

while(p->next&&i

{

p=p->next;

i++;

}

if(!

(p->next)||i>a-1)

return0;

q=p->next;

p->next=q->next;

printf("\n\n\n\n已将第%d个元素%d从单链表中",a,q->data[0]);

free(q);

printf("\n\n\n\n\n\n\n\n按Enter键→");

getchar();getchar();

system("cls");

return1;

}

voidInsert(LinkList&LA,LinkList&LB)

{

inta=1;

while(a)

{

printf("\n\n\n");

printf("\t\t\t\t主菜单\n\n");

printf("\t\t-----------------------------------------\n\n");

printf("\t\t\t1——在单链表LA中插入元素\n\n");

printf("\t\t\t2——在单链表LB中插入元素\n\n");

printf("\t\t\t0——退出\n\n");

scanf("%d",&a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1