在下這廂有禮了
平台: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...