佇列的定義和操作

2021-08-30 04:21:28 字數 1600 閱讀 8033

一.定義

佇列是一種先進先出的邏輯結構。將允許刪除元素的一端稱為隊頭,允許插入元素的一端稱為隊尾。將沒有結點的佇列稱為空佇列。佇列中的每個結點包括資料元素本身和指向其後結點的指標。佇列的資料結構包括指向隊頭的指標、指向隊尾的指標和隊中結點的個數。

二.佇列結點的定義

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...