使用鍊錶實現佇列,提供增刪改查介面,最後一步需要清空佇列,釋放動態申請的記憶體,第一篇博文,歡迎指正,謝謝。
queue.h
#ifndef queue_h
#define queue_h
#include
//佇列節點的資料結構,可以根據不同需求進行改造
typedef struct nodeinfoitem;
//佇列節點內容,包括資料結構與指向下乙個節點的指標
typedef struct node
node;
static node* p_head, *p_tail;//指向佇列的頭指標,尾指標
static
int length; //佇列長度
static
int countnode = 0; //佇列長度計數器
//初始化,生成乙個空佇列
void init();
//在佇列尾部新增節點
bool addnode();
//在佇列頭部刪除節點
bool deletenode();
//判斷佇列是否為空
bool isempty();
//判斷佇列是否為滿
bool isfull();
//遍歷佇列
void listqueue();
//修改任意位置節點值,傳入該節點的順序位置編號
node changenode(int positionnum,item item);
//佇列資料結構生成函式
item builditem(int num, char* name);
#endif
queue.c
#include
#include
#include
#include"queue.h"
void init()
bool isfull()
bool isempty()
bool addnode(item item)
temnode = (node*)malloc(sizeof(node));
if ( temnode == null)
if (p_tail == null)
else
countnode++;
return
true;
}bool deletenode()
node* temnode;
temnode = p_head;
p_head = p_head->pnext;
temnode->pnext = null;
free(temnode);
countnode--;
return
true;
}//不是乙個通用方法
void listqueue()
int i = 0;
node* temnode;
temnode = p_head;
for (i = 0; i < countnode; i++)
}//按從頭到尾的順序修改節點值,並返回修改後的節點值,頭結點為第0個
node changenode(int positionnum,item item)
int i = 0;
node* temnode;
temnode = p_head;
for (i = 0; i < countnode; i++)
temnode = temnode->pnext;
}
}//清空佇列
void clearqueue()
}//節點構造器
item builditem(int num, char* name)
佇列(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...