/*
帶頭結點的鏈佇列
vs2010 除錯
*/#include #include #include #define ok 1
#define error 0
#define true 1
#define false 0
typedef struct queue_node qnode;
typedef struct queue_node
;typedef struct link_queue
lqueue;
/*函式功能: 鏈佇列初始化
*/int init_link_queue(lqueue *q)
tmp_node->next = null;
q->head = tmp_node;
q->tail = tmp_node;
return ok;}/*
函式功能: 佇列是否為空
返 回 值: 1 空; 0 非空
*/int is_queue_empty(lqueue q)
/*函式功能: 元素num入隊
*/int enqueue(lqueue *q, int num)
tmp_node->next = null;
tmp_node->data = num;
q->tail->next = tmp_node;
q->tail = tmp_node;
return ok;}/*
函式功能: 出隊,隊頭元素存入num
*/int dequeue(lqueue *q, int *num)
tmp_node = q->head->next;
q->head->next = tmp_node->next;
*num = tmp_node->data;
if(q->head->next == null)
free(tmp_node);
return ok;}/*
函式功能: 獲取隊頭元素,存入num
*/int get_elem(lqueue q, int *num)
*num = q.head->next->data;
return ok;}/*
函式功能: 列印佇列元素
*/void print_queue(lqueue q)
free(tmpq.head);
printf("tail\n");}/*
函式功能: 銷毀佇列
*/void destory_queue(lqueue *q)}/*
函式功能: 獲得佇列長度
返 回 值: 長度
*/int get_queue_length(lqueue q)
do while(tmpq.head != null);
free(tmpq.head);
return length;
}int main(int argc, char *argv)
帶頭結點的鏈佇列實現
佇列 queue 在電腦科學中,是一種先進先出的線性表。和棧相反,它只允許在表的一端進行插入,而在表的另一端刪除元素。佇列是一種特殊的線性表,它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為...
帶頭結點的鏈佇列的基本操作
實現鏈佇列的入佇列及出佇列操作。status queueinsert linkqueue q,elemtype e status queuedelete linkqueue q,elemtype e 其中q和e都是使用者傳入的引數。linkqueue的型別定義如下 typedef int elemt...
資料結構 鏈佇列 帶頭結點
5.小結 include include define elemtype inttypedef struct linknode linknode typedef struct linkqueue 函式宣告 void initqueue linkqueue q 1.初始化佇列 bool liqueue...