1.順序佇列,可以實現以下功能:
**如下:
#include "stdio.h"
#define datetype int
#define maxsize 100
typedef struct seqqueue,*pseqqueue;
/*初始化佇列,入口引數:無,返回值:新的順序佇列指標,null表示失敗*/
pseqqueue init_seqqueue()
return q;
}/*判斷佇列是否為空,入口引數:順序佇列,返回值:1表示為空,0表示不為空*/
int empty_seqqueue(pseqqueue q)
/*入隊操作,入口引數:順序佇列和待入隊的元素x,返回值:1表示成功,-1表示隊滿溢位*/
int in_seqqueue(pseqqueue q,datetype x)
else }
/*出隊操作,入口引數:順序佇列和儲存出隊元素的*x,返回值:1表示成功,-1表示隊空*/
int out_seqqueue(pseqqueue q,datetype *x)
else }
/*取隊頭元素,入口引數:順序佇列和儲存隊頭元素的*x,返回值:1表示成功,-1表示隊空*/
int getfront_seqqueue(pseqqueue q,datetype *x)
else }
void destory_seqqueue(pseqqueue *q)
int main()
} return 0;
}
2.鏈佇列,可以實現以下功能:
**如下:
#include "stdio.h"
#define datetype int
typedef struct node qnode,*pqnode; //鏈隊節點型別
typedef structlinkqueue,*plinkqueue;
/*初始化佇列,入口引數:無,返回值:新的順序佇列指標,null表示失敗*/
plinkqueue init_linkqueue()
return q;
}/*判斷佇列是否為空,入口引數:鏈佇列,返回值:1表示為空,0表示不為空*/
int empty_linkqueue(plinkqueue q)
/*入隊操作,入口引數:鏈佇列和待入隊的元素x,返回值:1表示成功,0表示系統記憶體溢位*/
int in_linkqueue(plinkqueue q,datetype x)
p->data = x;
p->next = null;
if(empty_linkqueue(q))
else
return 1;
}/*出隊操作,入口引數:鏈佇列和儲存出隊元素的*x,返回值:1表示成功,-1表示隊空*/
int out_linkqueue(plinkqueue q,datetype *x)
*x = q->front->data;
printf("出佇列元素為:%d\n",*x);
p = q->front;
q->front = q->front->next;
free(p);
if(!q->front)
return 1;
}/*取隊頭元素,入口引數:鏈佇列和儲存隊頭元素的*x,返回值:1表示成功,0表示隊空*/
int getfront_linkqueue(plinkqueue q,datetype *x)
else
return 1;
}void destory_linkqueue(plinkqueue *q)
free(*q);
} *q = null;
}int main()
} return 0;
}
資料結構佇列的基本操作
include include 鍊錶 佇列的鏈式儲存結構 typedef struct queuenode qnode,queueptr 指向佇列頭和尾的指標結構體 typedef struct queue int main 構造乙個空佇列 void initqueue queue q 向隊尾插入元...
資料結構 佇列的基本操作
佇列 簡稱隊,一種受限的線性表,只允許在表的一端進行插入,在表的另一端進行刪除操作 先進先出 隊頭 進行刪除的一端 隊尾 進行插入的一端 空佇列 不含任何元素的空表 佇列的基本操作 佇列分為順序佇列 迴圈佇列和鏈式佇列,順序佇列容易發生假溢位現象 隊尾超過限定長度 故不常用,下面是迴圈佇列和鏈式佇列...
資料結構 佇列的基本操作
佇列是一種先進先出 first in first out 的線性表,簡稱fifo。與棧不同,棧是一種後進先出 先進後出 的線性表。在佇列中,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。假設佇列是q a1,a2,an 那麼a1就是隊頭元素,而an是隊尾元素。這樣我們就可以刪除時,總是從a1開始,而...