佇列陣列學習(不使用malloc)

2021-08-13 18:21:17 字數 1744 閱讀 5915

在下這廂有禮了

平台:linux  gcc編譯 

描述:佇列陣列,不使用malloc分配空間,通過陣列分配空間去做佇列描述。

結果如圖:

queue.h檔案:

定義結構體和佇列

#ifndef zwqueue_h_included

#define zwqueue_h_included

#define bool int

#define false 0

#define true 1

#define n 10

#define elemtype int

typedef struct qnode qnode;

typedef struct zwqueue_p zwqueue;

zwqueue *qu[n];

qnode qn[n];

zwqueue *initqueue(zwqueue *q);

bool queueempty(zwqueue *q);

int queuelength(zwqueue *q);

void enqueue(zwqueue *q, elemtype e);

bool dequeue(zwqueue *q);

#endif

queue.c檔案:

主要是實現函式的基本操作。

#include #include #include "queue.h"

static int index = 0;

zwqueue *initqueue(zwqueue *q)

bool queueempty(zwqueue *q)

int queuelength(zwqueue *q)

return n;

}void enqueue(zwqueue *q, elemtype e)

}bool dequeue(zwqueue *q)

int main()

printf("請輸入若干正整數:以0結束:");

scanf("%d",&a);

/*************************************/

/** 入佇列 **/

/*************************************/

while(a)

//for(i = 0; i < n; ++i)

//printf("第%d佇列:有%d個元素\n", i, queuelength(qu[i]));

/*************************************/

/** 出佇列 **/

/*************************************/

for(i = 0; i < n; ++i)

printf("\n");

} return 0;

}

操作:gcc  queue.c -o queue

./queue

何時使用或何時不使用malloc函式

在初學資料結構時,我們往往不太清楚在定義乙個結構體指標時要不要使用malloc函式。例如以下的 linklist init linklist retrun h linklist s s data x 以上這兩句 是不行的,因為s沒有指向確切的位址,所以不能通過s來向它要指向的位址賦值 但是linkl...

何時使用或何時不使用malloc函式

在初學資料結構時,我們往往不太清楚在定義乙個結構體指標時要不要使用malloc函式。例如以下的 linklist init linklist retrun h linklist s s data x 以上這兩句 是不行的,因為s沒有指向確切的位址,所以不能通過s來向它要指向的位址賦值 但是linkl...

使用malloc動態定義陣列

在使用陣列時,需要事先確定陣列的大小。因為要求int array n 括號裡的n必須為常量,於是天真的認為在定義n的時候寫上乙個const int n就可以解決問題了,經過嘗試失敗。上網一搜,有很多方法,比如使用結構,使用鍊錶等。下面給出一種簡單的方法,使用malloc函式。int n double...