C語言佇列實現

2021-10-01 20:01:16 字數 2019 閱讀 1128

以下解釋片面,但便於初學者理解**:

1.佇列是先進先出的資料結構

2.佇列結構體只有頭和尾兩個指標,並不包含儲存的資料。它只負責記錄佇列的頭尾指向,方便理解佇列的實現。

3. 佇列成員結構體包含乙個用來儲存資料的變數,和乙個指向下個成員的指標,指標指向下乙個佇列成員。

4. 入隊要更改佇列結構體隊尾指標到下乙個佇列成員,同時要把佇列成員結構體的指標指向新入隊的成員。

5. 佇列結構體的指標用來記錄整個佇列的頭尾指向。佇列成員結構體中的指標用來記錄新入隊的成員在**。

#include

//先進先出

#include

#define ture 1

#define false 0

struct stu

;// 佇列 是 從 尾巴插入元素, 從表頭刪除元素

struct queue

;struct queue *

create_queue

(void);

//建立佇列

intpd_queue

(struct queue *p)

;//判斷佇列

void

insert_queue

(struct queue *p)

;//插入佇列

void

tra_queue

(struct queue *p)

;//輸出

void

delete_queue

(struct queue *p)

;//刪除

intmain

(void

)//建立乙個佇列

struct queue *

create_queue

(void

) p->front =

null

;// 表頭

p->rear =

null

;// 表尾

printf

("佇列建立成功~\n");

return p;

}//判斷佇列是否為空:

intpd_queue

(struct queue *p)

printf

("\t該佇列不為空~\n");

return ture;

}// 入隊

void

insert_queue

(struct queue *p)if(

pd_queue

(p)== false)

else

printf

("\t入隊的資料為:");

scanf

("%d"

,&new->num)

; new->next =

null;}

void

tra_queue

(struct queue *p)

dowhile

(r !=

null);

}void

delete_queue

(struct queue *p)

r = p->front;

if(p->front == p->rear)

else

printf

("%d出隊!\n"

, r->num)

;free

(r);

}

佇列建立成功~

該隊列為空~

入隊的資料為:

1 該佇列不為空~

入隊的資料為:

2 該佇列不為空~

入隊的資料為:

3 該佇列不為空~

隊中元素為:1

隊中元素為:2

隊中元素為:3

該佇列不為空~

1出隊!

該佇列不為空~

隊中元素為:2

隊中元素為:3

該佇列不為空~

入隊的資料為:

迴圈佇列實現(C語言)

背景 生活中有很多佇列的影子,比如打飯排隊,買火車票排隊問題等,可以說與時間相關的問題,一般都會涉及到佇列問題 從生活中,可以抽象出佇列的概念,佇列就是乙個能夠實現 先進先出 的儲存結構。佇列分為鏈式佇列和靜態佇列 靜態佇列一般用陣列來實現,但此時的佇列必須是迴圈佇列,否則會造成巨大的記憶體浪費 鏈...

佇列的實現 C語言

標頭檔案 pragma once include include include typedef int qdatatype typedef struct queuenode queuenode typedef struct queue queue 初始化佇列 void queueinit queu...

佇列的實現 C語言

c語言,佇列的實現 include include define queue size 50 設定佇列的大小 typedef struct seqqueuequeue queue initqueue q front 0 q rear 0 q count 0 return q int isfull q...