#include
#include "stdio.h"
#include "stdlib.h"
using namespace std;
#define ok 1
#define error 0
#define overflow -2
typedef int status;
typedef int qelemtype;//因為要求是輸入整數型資料元素
//00 資料結構定義
typedef struct qnode qnode, *queueptr;
typedef struct linkqueue;
//01 初始化鏈隊q
status initlqueue(linkqueue &q)//q為什麼加&?q是乙個有兩個指標域的結構體變數,有乙個指標的值修改了,q這個結構體變數就發生變化了。如果想讓q返回給主函式,這個子函式就要加&。
//02 根據隨機輸入的佇列長度和佇列中整數型資料元素的值,建立乙個非空鏈佇列;
status createlqueue(linkqueue &q)//即使已經初始化了,但每在隊尾插入乙個節點,q的尾指標就要修改指向這個新加入的節點,故而q發生了變化,想讓主函式同時改變,則需加&。
return ok;
}//03 入隊
status enqueue(linkqueue &q, qelemtype e)
else
queueptr p;
p = q.front->next; //p指向隊頭元素
e = p->data;
q.front->next = p->next; //頭結點的next指向p-next(p的後繼結點);
if (q.rear == p)
delete p;
return ok;
}//05 判定佇列是否為空,若不空輸出隊頭元素;注意與教材上的區別,兩種不同的形式返回乙個值
status getlqhead(linkqueue q, qelemtype &e)//q沒變不加,e需要返回給主函式故加&。
else
}//06 輸出鏈隊當前元素個數;
status getlength(linkqueue q, int &len)//q沒變不加,len需要返回給主函式故加&。
}return ok;
}//07 輸出佇列中所有元素;
status displaylqueue(linkqueue q)//q沒變不加&
資料結構實驗(三) 鏈佇列
一 實驗目的 1 熟練掌棧的結構特點,掌握佇列的順序儲存和鏈式儲存結構和實現。2 學會使用佇列解決實際問題。自己確定結點的具體資料型別和問題規模 分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。include using namespace std template struct node ...
資料結構 鏈隊(C C 版)
本文為csdn博主coder gxd原創 include 函式malloc free 所在標頭檔案 本文鏈隊為不含頭結點的鏈隊 定義鏈隊結點 typedef struct qnode qnode 定義鏈隊型別 typedef struct liqueue 初始化鏈隊,時間複雜度為o 1 建立鏈隊,並...
資料結構知識整理 鏈隊
初始化 入隊 出隊 取隊頭元素 棧和佇列是兩種重要的線性結構,與一般線性表不同,它們是操作受限的特殊線性表,主要用於輔助其他資料結構的操作和處理,基本不用於儲存資料元素資訊。佇列 queue 是一種先進先出 first in first out,fifo 的線性表。它只允許在表的一端插入,而在表的另...