資料結構實驗三 鏈隊

2022-09-19 18:54:10 字數 1662 閱讀 9549

#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 的線性表。它只允許在表的一端插入,而在表的另...