頭刪,尾插
#include<stdio.h>
#include<stdlib.h>
typedef struct Queue
{
int num;
struct Queue *next;
}Queue;
typedef struct pQueue
{
Queue *first;
Queue *tail;
} pQueue;
int getNum()
{
int num;
printf("請輸入數(shù)字:");
scanf("%d",&num);
return num;
}
pQueue* creatQueue(pQueue *queueHead) //創(chuàng)建鏈表
{
if (queueHead==NULL)
{
queueHead=(pQueue *)malloc(sizeof(pQueue));
queueHead->first=queueHead->tail=NULL;
return queueHead;
}
return queueHead;
}
void tailInsertData(pQueue *queueHead) //尾插
{
if(queueHead==NULL)
{
printf("沒有創(chuàng)建成功\n");
return ;
}
Queue *p=(Queue *)malloc(sizeof (Queue));
p->num=getNum();
if(queueHead->first==NULL)
{
queueHead->first=p;
queueHead->tail=p;
p->next=NULL;
return;
}
p->next=NULL;
queueHead->tail->next=p;
queueHead->tail=p;
}
void headDeleteDta(pQueue *queueHead) //頭刪
{
if(queueHead==NULL||queueHead->tail==NULL)
{
printf("無信息可刪!\n");
return ;
}
if(queueHead->first->next==NULL)
{
free(queueHead->first);
queueHead->first=queueHead->tail=NULL;
return;
}
Queue *p=queueHead->first;
queueHead->first=p->next;
free(p);
p=NULL;
}
void printData(pQueue *queueHead) //打印信息
{
if(queueHead==NULL||queueHead->tail==NULL)
{
printf("無信息可打印\n");
return;
}
Queue *temp;
printf("Head-->");
for(temp=queueHead->first; temp!=NULL; temp=temp->next)
{
printf("[%d]-->",temp->num);
}
printf("NULL\n");
}
int main()
{
pQueue *queueHead=NULL;
int select;
while(1)
{
printf("=======\n");
printf("1.創(chuàng)建數(shù)據(jù)\n");
printf("2.刪除數(shù)據(jù)\n");
printf("3.插入數(shù)據(jù)\n");
printf("4.打印隊列\(zhòng)n");
printf("5.退出\n");
printf("=======\n");
scanf("%d",&select);
switch(select)
{
case 1:
queueHead=creatQueue(queueHead);
break;
case 2:
headDeleteDta(queueHead);
break;
case 3:
tailInsertData(queueHead);
break;
case 4:
printData(queueHead);
break;
case 5:
return 0;
default:
break;
}
}
return 0;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。