該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
#include"stdio.h"
//使用new指針來將臨時變量重新初始化
#include"stdio.h"
typedef?int?ElemType;
typedef?struct?LNode{
ElemType?data;
struct?LNode?*next;
}LNode,*LinkList;
void?InitList(LinkList?&L)//L是頭指針,指針指向第一個節點,通過移動L的指向來加入元素
{
ElemType?e;
LinkList?p;
L=new?LNode;
L->next?=?NULL;
printf("請輸入鏈表中的數據元素,以0結束");
scanf("%d",&e);
while(e)
{
p=new?LNode;
p->data=e;
p->next=L->next;
L->next=p;
scanf("%d",&e);
}
}
void?PrintList(LinkList?L)
{
LinkList?p;
ElemType?ddt;
p=L->next;
while(p){
ddt=p->data;
printf("%d\t",ddt);
p=p->next;
}
printf("\n");
}
void??InsertList(LinkList?&L)
{
LinkList?p;
printf("\ninput?the?number?at?the?tail?of?table?which?you?wish?to?insert\n");
p=new?LNode;
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
void?Delete(LinkList?&L)
{
LinkList?p,temp;
ElemType?e;
printf("\ninput?the??number?you??wish?to?delete\n");
scanf("%d",&e);
temp=L;
p=L->next;
while(p)
{
if(p->data==e)
{
printf("the?opertation?is?successful\n");
temp->next=p->next;
break;
}
else
temp=p;
p=p->next;
}
}
LinkList?Daozhi(LinkList?&L)
{
LinkList?p;
LinkList?s,pp;//倒置即將表中元素輸出后重新賦值,再創建另外一個鏈表,s為新鏈表的表頭
LinkList?temp;
p=L->next;//
s=new?LNode;
s->next=NULL;
while(p)
{
pp=new?LNode;
pp->data=p->data;
pp->next=s->next;
s->next=pp;
p=p->next;
}
return?s;
/*
temp=new?LNode;
temp=s->next;
while(temp)
{
printf("%d\t",temp->data);
temp=temp->next;
}
*/
}
LinkList?Comb(LinkList?&L1,LinkList?&L2)
{
printf("asdp");
LinkList?p1,p2,p3;//p1對應L1的暫存變量,p2對應L2的暫存變量
LinkList?temp;//輸出的臨時變量
LinkList?L3;
L3=new?LNode;
L3->next=NULL;
p1=L1->next;
p2=L2->next;
while(p1&&p2)
{
if(p1->data<=(p2->data))
{
p3=p1;
p1=p1->next;
}
else{
p3=p2;
p2=p2->next;
}