資料結構(C實現) 鏈佇列

2021-06-25 20:46:48 字數 1859 閱讀 6315

鏈佇列,即佇列的鏈式儲存結構,它是僅在表頭刪除和表尾插入的單鏈表,因此乙個鏈佇列需要設定兩個分別指示隊頭元素和隊尾元素的指標,為了操作方便,給鏈佇列新增乙個頭結點,並令隊頭指標指向頭結點,由此,空的鏈佇列的判斷條件就是隊頭指標和隊尾指標均指向頭結點。

//鏈佇列型別描述

typedef int qelemtype;

typedef struct nodeqnode,*queueptr;

typedef structlinkqueue;

1. 鏈佇列的初始化(帶頭結點)init_linkqueue(linkqueue *q)

//鏈佇列的初始化(帶頭結點)

void init_linkqueue(linkqueue *q)

2. 銷毀鏈佇列destroy_linkqueue(linkqueue *q)

//銷毀鏈佇列

void destroy_linkqueue(linkqueue *q)

}

3. 清空鏈佇列clear_linkqueue(linkqueue *q)

//清空鏈佇列

void clear_linkqueue(linkqueue *q)

4. 判斷鏈佇列是否為空isempty_linkqueue(linkqueue *q)

//判斷鏈佇列是否為空

int isempty_linkqueue(linkqueue *q)

5. 求鏈佇列的長度getlength_linkqueue(linkqueue *q)

//求鏈佇列的長度

int getlength_linkqueue(linkqueue *q)

return count;

}

6. 取得鏈佇列的頭部元素gethead_linkqueue(linkqueue *q,qelemtype *x)

//取得鏈佇列的頭部元素

void gethead_linkqueue(linkqueue *q,qelemtype *x)

else

}

7. 取得鏈隊尾的頭部元素getrear_linkqueue(linkqueue *q,qelemtype *x)

//取得鏈隊尾的頭部元素

void getrear_linkqueue(linkqueue *q,qelemtype *x)

else

}

8.  入鏈佇列en_linkqueue(linkqueue *q,qelemtype x)

//入鏈佇列

void en_linkqueue(linkqueue *q,qelemtype x)

9.  出鏈佇列de_linkqueue(linkqueue *q,qelemtype *x)

//出鏈佇列

void de_linkqueue(linkqueue *q,qelemtype *x)

else

}

10.  輸出鏈佇列print_linkqueue(linkqueue *q)

//輸出鏈佇列

void print_linkqueue(linkqueue *q)

else

printf("\n");

} }

資料結構鏈佇列實現

如題 這是一套完整的可執行的 需要讀者有一定的基礎去閱讀 語言是用c語言實現 在c 環境中編寫 在c 中可直接執行 在c語言中需要改部分標頭檔案和輸出語句 標頭檔案 這要是 的宣告部分 ifndef head define head include using namespace std typed...

鏈佇列資料結構的實現

typedef struct node linkqueuenode typedef struct linkqueue 鏈佇列初始化 空的鏈佇列的隊頭指標和隊尾指標均指向頭結點 int initqueue linkqueue q else return 1 入隊操作演算法 利用隊尾尾插法 int en...

C語言資料結構 鏈佇列

鏈佇列與鍊錶相似,不同的是它具有對列的運算方法,儲存結構和鍊錶相同,下面是其結構示意圖 這裡的 q類似於鍊錶的頭節點 head 它包含兩個指向佇列節點的指標front和rear 當front和rear都為 時隊列為空 front指向佇列第乙個節點,rear指向最後乙個節點,當兩者指向同乙個節點說明佇...