使用C語言實現佇列

2021-08-21 03:04:44 字數 2321 閱讀 1134

#include

#include

typedef struct queue_node node;

// 表頭

static node *phead = null;

static int count = 0;

static node* create_node(void *pval)

return pnode;

}/**

*  建立雙向鍊錶

* @return 成功,返回0;否則,返回-1。

*/int create_queue()

count = 0;

return 0;

}/**

* 判斷雙向鍊錶是否為空

* @return 0為空

*/int queue_is_empty()

/*** 獲取雙向鍊錶的大小

* @return size

*/int queue_size()

/*** 獲取鍊錶中指定位置的節點

*/static node* get_node(int index)

if (index <= (count / 2))

int j = 0;

int rindex = count - index - 1;

node *rnode = phead->prev;

while ((j++) < rindex)

rnode = rnode->prev;

return rnode;

}/**

* 獲取鍊錶中指定位置的元素

* @param index index

* @return 指定位置的元素

*/void* queue_get(int index)

return pindex->p;

}/**

* 獲取鍊錶中第1個元素的值

* @return 第1個元素的值

*/void* queue_get_first()

/*** 獲取鍊錶中最後1個元素的值

* @return 最後1個元素的值

*/void* queue_get_last()

/*** 插入到index位置

* @param index index

* @param pval pval

* @return 是否插入成功

*/int queue_insert(int index, void* pval)

/*** 插入到煉表頭

* @param pval

* @return 是否插入成功

*/int queue_insert_first(void *pval)

/*** 插入鍊錶尾

* @param pval

* @return 是否插入成功

*/node *pnode = create_node(pval);

if (!pnode)

return -1;

pnode->next = phead;

pnode->prev = phead->prev;

phead->prev->next = pnode;

phead->prev = pnode;

count++;

return 0;

}/**

* 刪除雙向鍊錶中index位置的節點

* @param index index

* @return 成功,返回0;否則,返回-1

*/int queue_delete(int index)

pindex->next->prev = pindex->prev;

pindex->prev->next = pindex->next;

free(pindex);

count--;

return 0;

}/**

* 刪除第乙個節點

*/int queue_delete_first()

/** 刪除最後乙個節點

*/int queue_delete_last()

/*** 釋放雙向鍊錶

* @return 成功,返回0;否則,返回-1。

*/int destroy_queue()

node *pnode = phead->next;

node *ptmp = null;

while (pnode != phead)

free(phead);

phead = null;

count = 0;

return 0;

}

佇列(c語言實現)

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

佇列 c語言實現

佇列 先進先出 define minquesize 5 typedef struct treenode elemtype typedef struct myqueue myqueue creatqueue int capacity myqueue res malloc sizeof myqueue ...

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...