C語言實現鏈式佇列

2021-10-06 05:18:50 字數 2433 閱讀 5653

#include "link_queue.h"

/********************************

建立入列

出列顯示所有資料

是否為空

釋放佇列

********************************/

//建立1

void create_link_queue_1(plinkqueue *h)

(*h)->len = 0;

(*h)->header = null;

(*h)->tail = null;

}//建立2

void create_link_queue_2(plinkqueue h)

h->len = 0;

h->header = null;

h->tail = null;

}//建立3

plinkqueue create_link_queue_3(void)

new_h->len = 0;

new_h->header = null;

new_h->tail = null;

return new_h;

}//是否為空

int is_empty_link_queue(plinkqueue h)

return 0;

}//入列:注意 佇列只有尾插

int into_link_queue(plinkqueue h,queue_data_type data)

new_node = (pqueuenode)malloc(sizeof(tqueuenode));

if(null == new_node)

new_node->data = data;

new_node->next = null;

h->tail->next = new_node;

h->tail = new_node;

if(null == h->header)

h->len++;

return 0;

}//出列

int out_link_queue(plinkqueue h,queue_data_type *data)

outnode = h->header;

*data = outnode->data;

h->header = outnode->next;

h->len--;

if(outnode == h->tail)

free(outnode);

return 0;

}//顯示所有資料

int display_all_link_queue_node(plinkqueue h)

for((tmpnode = h->header); (null != tmpnode); (tmpnode = tmpnode->next))

return 0;

}//釋放鍊錶

int free_link_queue(plinkqueue h)

while(null != (h->header))

free(h);

return 0;

}

#ifndef link_queue_h_included

#define link_queue_h_included

#ifndef null

#define null ((void *)0)

#endif // null

#define queue_data_type int

typedef struct _queue_node

tqueuenode,*pqueuenode;

typedef struct _link_queue

tlinkqueue,*plinkqueue;

extern void create_link_queue_1(plinkqueue *h);

extern void create_link_queue_2(plinkqueue h);

extern plinkqueue create_link_queue_3(void);

extern int is_empty_link_queue(plinkqueue h);

extern int into_link_queue(plinkqueue h,queue_data_type data);

extern int out_link_queue(plinkqueue h,queue_data_type *data);

extern int display_all_link_queue_node(plinkqueue h);

extern int free_link_queue(plinkqueue h);

#endif // link_queue_h_included

如有錯誤,歡迎指正

C語言實現鏈式佇列

鏈式佇列,簡稱 鏈佇列 即使用鍊錶實現的佇列儲存結構。鏈式佇列的實現思想同順序佇列類似,只需建立兩個指標 命名為 top 和 rear 分別指向鍊錶中佇列的隊頭元素和隊尾元素,如下圖所示 所示為鏈式佇列的初始狀態,此時佇列中沒有儲存任何資料元素,因此 top 和 rear 指標都同時指向頭節點。在建...

鏈式佇列 C語言實現

鏈式佇列的儲存結構 我們知道,佇列是操作受限制的線性表,佇列有隊頭和隊尾,插入元素的一端稱為隊頭,刪除元素的一端稱為隊尾。練市佇列的隊頭指標指向當前佇列的隊頭結點位置,隊尾指標指向佇列的當前隊尾結點位置。對於不帶頭結點的鏈式佇列,出佇列時可直接刪除隊頭指標所指的結點,因此,鏈式佇列不帶頭結點更方便。...

C語言實現鏈式佇列

鏈式佇列原始碼 鏈隊運算演算法 include include typedef char elemtype typedef struct datanode datanode 鏈隊資料節點型別定義 typedef struct linkqunode 鏈隊型別定義 void initqueue link...