c語言實現普通佇列

2021-07-09 06:34:53 字數 1924 閱讀 3172

使用鍊錶實現佇列,提供增刪改查介面,最後一步需要清空佇列,釋放動態申請的記憶體,第一篇博文,歡迎指正,謝謝。

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