c語言之佇列結構

2021-07-27 05:26:28 字數 2564 閱讀 2636

佇列是一種操作受限的線性表,其限制條件為允許在表的一端進行插入,而在表的另一端進行刪除。插入的一端叫做隊尾,刪除的一端叫做隊頭。向佇列中插入新元素的行為稱為進隊,從佇列中刪除元素的行為稱為出隊。

佇列的特點是先進先出。舉例:火車從山洞一端開進,從山洞另一端開出,車廂好比乙個個元素,最先進入山洞的車廂先出,後進山洞的車廂後出。

**:

typedef struct sqqueuesqqueue;
(1)隊空狀態:

qu.front ==qu.rear
(2)隊滿狀態:

(qu->rear+1)%maxsize ==qu->front
(1)進佇列:

qu->rear=(qu->rear+1)%maxsize;

qu->data[qu->rear]=x;

(2)出佇列:

*y=qu->data[qu->front];

qu->front=(qu->front+1)%maxsize;

#include#include#define maxsize 50

typedef struct sqqueuesqqueue;

//建立迴圈佇列

sqqueue initqueue()

sq->rear=sq->front=0;

return *sq;

}//判斷迴圈佇列是否為空

int isempty(sqqueue qu)

//元素進迴圈佇列

int enqueue(sqqueue *qu,int x)

qu->rear=(qu->rear+1)%maxsize;

qu->data[qu->rear]=x;

return 1;

}//元素出迴圈佇列

int dequeue(sqqueue *qu,int *y)

*y=qu->data[qu->front];

qu->front=(qu->front+1)%maxsize;

return 1;

}//列印迴圈佇列

int printqueue(sqqueue qu)

while(qu.rear !=qu.front)

return 1;

}void main()

結果:

**:

//鏈佇列結點結構

typedef struct qnodeqnode;

//鏈佇列結構

typedef struct liqueueliqueue;

(1)隊空

lq->front==null || lq->rear==null
(1)進佇列:

lq->rear->next=p;

lq->rear=p;

(2)出佇列:

p=lq->front;

lq->front=p->next;

x=p->data;

free(p);

#include#include//鏈佇列結點結構

typedef struct qnodeqnode;

//鏈佇列結構

typedef struct liqueueliqueue;

//建立鏈佇列

liqueue initqueue()

lq->front=lq->rear=null;

return *lq;

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

int isempty(liqueue *lq)else

}//元素進鏈佇列

void enqueue(liqueue *lq,int x)else

}//元素出鏈佇列

int dequeue(liqueue *lq,int *y)

if(lq->front==lq->rear)else

*y=p->data;

free(p);

return 1;

}//列印鏈佇列

void printqueue(liqueue lq)

while(lq.front!=null)

}void main()

結果:

C語言之結構體

一 什麼是結構體 結構體是不同型別的資料組合成乙個有機整體。例如 學生的學號 姓名 性別 成績 位址 這些都是乙個學生的屬性,把這些屬性組織成乙個組合,組合中包含不同的資料型別,c和c 允許指定這樣的資料型別,稱為結構體。struct student 申明乙個結構體型別 struct是結構體申明的關...

C語言之結構體

在c語言中,可以使用結構體 struct 來存放一組不同型別的資料。結構體的定義形式為 struct 結構體名 結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員 member 請看下面的乙個例子 struct stu stu 為結構...

c語言之棧結構

棧是一種只能在一端進行插入或者刪除操作的線性表 說明棧還是線性表結構,只是操作受限而已 其中允許進行插入或者刪除操作的一端稱為棧頂。棧的插入和刪除一般叫入棧和出棧。棧的順序儲存結構叫做順序棧,棧的鏈式儲存結構叫做鏈棧。define maxsize 100 typedef struct sqstack...