佇列 c語言實現

2021-10-25 09:31:54 字數 1568 閱讀 9142

佇列 : 先進先出

#define minquesize 5

typedef struct treenode* elemtype;

typedef struct myqueue;

myqueue *creatqueue(int capacity)

myqueue *res = malloc(sizeof(myqueue));

if (res == null)

res->front = -1;

res->rear = -1;

res->capacity = capacity;

res->size = 0;

res->data = malloc(capacity * sizeof(elemtype));

if (res->data == null)

return res;

}bool queueisempty(myqueue *queue)

return (queue->size == 0);

}bool queueisfull(myqueue *queue)

return (queue->size == queue->capacity);

}elemtype queuepop(myqueue *queue)

queue->rear = (queue->rear + 1) % (queue->capacity);

queue->size–;

return queue->data[queue->rear];

}void queuepush(myqueue *queue, elemtype elem)

queue->front = (queue->front + 1) % (queue->capacity);

queue->data[queue->front] = elem;

queue->size++;

}二叉樹的前序遍歷和層序遍歷

前序遍歷思路: 棧

步驟一: 先訪問右子節點,如果該節點有左子節點,將左子節點壓入stack

步驟二 :若無右子節點可以訪問,則從棧中取出節點並繼續步驟一

層序遍歷思路:佇列

訪問每個節點時 將該節點的右子節點和左子節點依次壓入佇列

單詞接龍思路:寬度遍歷 + map

實現 : 雙佇列

佇列1:儲存沒有訪問的word

佇列2:儲存當前深度 所有可能結果

int qsortcmp(const void *left, const void *right)

else if (letfpeo[0] == rightpeo[0]) else

}intreconstructqueue(int

people, int peoplesize, int peoplecolsize, int returnsize, int

returncolumnsizes)

qsort(people, peoplesize, sizeof(int *), qsortcmp);

for (int i = 0; i < peoplesize; i++)

return null;

佇列(c語言實現)

目錄前言 一 佇列是什麼?二 佇列的屬性與操作以及種類 1.佇列屬性 2.佇列操作 3.佇列種類 三 佇列的實現 c語言 總結 本文旨在幫助剛接觸佇列的人更快的掌握,語言不夠嚴謹,望海涵。栗子 一對情侶準備在情人節去電影院看電影,男的是個身穿格仔衫的程式設計師,我們就稱之為小木,由於排隊買票的人特別...

C語言實現佇列

1 ifndef queue h 2 define queue h 34 include 5 6 typedef int qdatatype 資料型別 78 typedef struct listnode 通過鍊錶實現的 9listnode,plistnode 1314 typedef struct...

c語言push C語言實現佇列

棧的特點是先進後出,佇列的特點是先進先出,從這個特點可以知道,佇列是比較友好的,不像棧那樣最開始進去排隊的人,竟然是最後乙個出來的。因為我這個例程是使用鍊錶實現佇列的,所以新建乙個佇列,實際上就是開闢乙個記憶體空間,用來儲存佇列的頭部。跟棧一樣,我們理解了建立乙個佇列就是需要建立乙個頭,開闢的這個空...