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