#include<stdio.h>
#include<stdlib.h>
typedef struct LINK
{
int num;
struct LINK *next;
}LINK,*pLINK;
int getNum()
{
int num;
printf("請輸入數字:");
scanf("%d",&num);
return num;
}
pLINK headInsertData(pLINK head,pLINK *tail)
{
if(head==NULL)
{
head=(pLINK)malloc(sizeof(LINK));
head->num=getNum();
head->next=NULL;
*tail=head;
return head;
}
pLINK p=(pLINK)malloc(sizeof(LINK));
p->num=getNum();
p->next=head;
head=p;
return head;
}
pLINK tailInsertData(pLINK head,pLINK *tail)//尾插數據
{
if(head==NULL)
{
head=(pLINK)malloc(sizeof(LINK));
head->num=getNum();
head->next=NULL;
*tail=head;
return head;
}
pLINK temp;
for(temp=head;temp->next!=NULL;temp=temp->next);
pLINK p=(pLINK)malloc(sizeof(LINK));
p->num=getNum();
(*tail)->next=p;
p->next=NULL;
*tail=p;
return head;
}
pLINK headDeleteData(pLINK head,pLINK *tail)//頭刪數據
{
if(head==NULL)
{
printf("無信息可刪\n");
return NULL;
}
if(head->next==NULL)
{
free(head);
head=NULL;
*tail=NULL;
return head;
}
pLINK p=head;
head=head->next;
free(p);
p=NULL;
return head;
}
pLINK tailDeleteData(pLINK head,pLINK *tail)//尾刪數據
{
if(head==NULL)
{
printf("無信息可刪\n");
return NULL;
}
if(head->next==NULL)
{
free(head);
head=NULL;
*tail=NULL;
return head;
}
pLINK temp;
for(temp=head;temp->next!=*tail;temp=temp->next);
free(*tail);
*tail=temp;
temp->next=NULL;
return head;
}
void printData(pLINK head)//打印信息
{
if(head==NULL)
{
printf("無信息可打印\n");
return;
}
pLINK temp;
for(temp=head;temp!=NULL;temp=temp->next)
{
printf("[%d]-->",temp->num);
}
printf("NULL\n");
}
int main()
{
pLINK head=NULL;
pLINK tail=NULL;
int select;
while (1)
{
printf("========\n");
printf("1.頭插文件\n");
printf("2.尾插文件\n");
printf("3.頭刪文件\n");
printf("4.尾刪文件\n");
printf("5.打印數據\n");
printf("6.退出\n");
printf("========\n");
scanf("%d",&select);
switch(select)
{
case 1:
head=headInsertData(head,&tail);
break;
case 2:
head=tailInsertData(head,&tail);
break;
case 3:
head=headDeleteData(head,&tail);
break;
case 4:
head=tailDeleteData(head,&tail);
break;
case 5:
printData(head);
break;
case 6:
return 0;
default:
break;
}
}
}
無頭鏈表
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 聯合體 聯合體:多個成員變量公用同一塊空間,一個時間段只能用其中的一個成員.如果成員變量都是基本數據類型,那么這個...
- 題目:假設有一個沒有頭指針的單鏈表。一個指針指向此單鏈表中間的一個節點(不是第一個,也不是最后一個節點)。請將該節...