卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

c語言隊列實現代碼 C語言隊列實現代碼詳解

隊列是一種常見的數據結構,它遵循先進先出(First In First Out,FIFO)的原則。在C語言中,可以通過數組或鏈表來實現隊列。下面我們將分別介紹這兩種實現方式。1. 數組實現隊列數組實現

隊列是一種常見的數據結構,它遵循先進先出(First In First Out,FIFO)的原則。在C語言中,可以通過數組或鏈表來實現隊列。下面我們將分別介紹這兩種實現方式。

1. 數組實現隊列

數組實現隊列的基本思想是使用一個固定大小的數組來存儲數據元素,并使用兩個指針front和rear分別指向隊頭和隊尾。初始化時,front和rear都指向數組的第一個元素。入隊操作時,將元素插入rear指向的位置,并將rear后移一位;出隊操作時,將front指向的元素移除,并將front后移一位。需要注意的是,當rear指向數組末尾時,再有元素入隊時需要進行循環(huán)處理。

下面是使用數組實現隊列的示例代碼:

```c

#include

#define SIZE 100

int queue[SIZE];

int front -1;

int rear -1;

int isEmpty()

{

if (front -1 || front > rear)

return 1;

else

return 0;

}

int isFull()

{

if (rear SIZE - 1)

return 1;

else

return 0;

}

void enqueue(int data)

{

if (isFull())

printf("Queue is full.

");

else

{

if (front -1)

front 0;

rear ;

queue[rear] data;

}

}

int dequeue()

{

if (isEmpty())

{

printf("Queue is empty.

");

return -1;

}

else

{

int data queue[front];

front ;

return data;

}

}

int main()

{

enqueue(1);

enqueue(2);

enqueue(3);

printf("%d

", dequeue());

printf("%d

", dequeue());

printf("%d

", dequeue());

return 0;

}

```

2. 鏈表實現隊列

鏈表實現隊列的基本思想是使用一個單向鏈表來存儲數據元素,并使用兩個指針front和rear分別指向隊頭和隊尾。初始化時,front和rear都指向NULL。入隊操作時,將新節(jié)點插入rear指向節(jié)點的后面,并將rear指向新節(jié)點;出隊操作時,將front指向的節(jié)點移除,并將front后移一位。需要注意的是,當鏈表為空時,front和rear都應該指向NULL。

下面是使用鏈表實現隊列的示例代碼:

```c

#include

#include

struct Node

{

int data;

struct Node* next;

};

struct Node* front NULL;

struct Node* rear NULL;

int isEmpty()

{

if (front NULL)

return 1;

else

return 0;

}

void enqueue(int data)

{

struct Node* newNode (struct Node*) malloc(sizeof(struct Node));

newNode->data data;

newNode->next NULL;

if (isEmpty())

{

front newNode;

rear newNode;

}

else

{

rear->next newNode;

rear newNode;

}

}

int dequeue()

{

if (isEmpty())

{

printf("Queue is empty.

");

return -1;

}

else

{

struct Node* temp front;

int data temp->data;

front front->next;

free(temp);

return data;

}

}

int main()

{

enqueue(1);

enqueue(2);

enqueue(3);

printf("%d

", dequeue());

printf("%d

", dequeue());

printf("%d

", dequeue());

return 0;

}

```

以上是C語言中隊列的兩種常見實現方式:數組和鏈表。通過對代碼的詳細解析,我們可以更好地理解隊列的原理和操作過程,從而能夠靈活運用隊列解決實際問題。希望本文能對讀者有所幫助。