一.定義
佇列是一種先進先出的邏輯結構。將允許刪除元素的一端稱為隊頭,允許插入元素的一端稱為隊尾。將沒有結點的佇列稱為空佇列。佇列中的每個結點包括資料元素本身和指向其後結點的指標。佇列的資料結構包括指向隊頭的指標、指向隊尾的指標和隊中結點的個數。
二.佇列結點的定義
typedef int qdatatype;
typedef struct qnode
qnode;
三.佇列的定義
typedef struct queue
queue;
四.佇列的操作
#pragma once
#include#includetypedef int qdatatype;
typedef struct qnode
qnode;
typedef struct queue
queue;
//初始化
void initqueue(queue *q)
//銷毀
void queuedestroy(queue *q)
//列印
void qprint(queue q)
qnode *p = q.front;
//如果佇列中只有乙個結點
if (q.front == q.rear)
for (; p != null; p = p->qnext)
printf("\n");
}//入佇列
void queuepush(queue *q, qdatatype data)
qnode->data = data;
qnode->qnext = null;
//如果原來是空佇列
if (q->size == 0)
else }
//出佇列
void queuepop(queue *q)
//如果只有乙個結點,修改。
if (q->front == q->rear)
qnode *del = q->front;
q->front = q->front->qnext;
q->size--;
//free(del);
}//返回隊首元素
qdatatype queuefront(queue *q)
return q->front->data;
}//返回隊尾元素
qdatatype queueback(queue *q)
//判斷佇列是否為空,為空,返回1;不為空,返回0.
int isemptyq(queue *q)
else }
// 返回資料個數
int queuesize(queue *q)
qnode *p = q->front;
for (; p != null; p = p->qnext)
return count;
}void test2()
迴圈佇列的定義及操作
include include define maxsize 50 typedef struct seqqueue void initqueue seqqueue q 初始化操作,將q初始化為乙個空的迴圈佇列 bool enterqueue seqqueue q,int x 入隊,將元素x入隊 bo...
佇列的定義及基本操作
1.佇列是一種先進先出的線性表,它的操作只能在表的兩端進行 2.分類 鏈佇列 鏈式表示 迴圈佇列 順序表示 結點結構 typedef struct qnodeqnode,qptr 鏈佇列結構 typedef struct linkqueue 建立空佇列 status initqueue linkqu...
(1 2 2)棧 佇列的的結構定義和基本操作
1.1 順序棧的結構圖定義 1.2 順序棧的基本操作 先訪問,後移動指標 int stack maxsize int top 1 初始化宣告,注意,該方法會導致top指標指向第乙個棧頂節點,而不是頭結點 stack top x 進棧 x stack top 出棧 stack.top 1 驗證空棧 s...