資料結構學習之 佇列(帶有頭節點的單鏈表實現)

2021-09-22 05:58:59 字數 1258 閱讀 8553

#pragma once

#include //利用帶有頭節點的單鏈表實現佇列,隊頭為第乙個資料節點

typedef struct node

node; //資料節點

typedef struct hnode

hnode,*plqueue; //頭節點

void initqueue(plqueue pl);

//入隊

bool push(plqueue pl, int val);

//獲取隊頭的值,但不刪除

bool gettop(plqueue pl, int *rtval);

//獲取隊頭的值,且刪除

bool pop(plqueue pl, int *rtval);

//判空

bool isempty(plqueue pl);

.cpp

#include #include #include #include "lsqueue.h"

/*typedef struct node

node; //資料節點

typedef struct hnode

hnode,*plqueue; //頭節點

*/void initqueue(plqueue pl)

//入隊

bool push(plqueue pl, int val)

else

return true;

}//獲取隊頭的值,且刪除

bool pop(plqueue pl, int *rtval)

if(rtval != null)

node *p = pl->front;

free(p);

if(pl->front == null) //已經刪除最後乙個節點

return true;

}//獲取隊頭的值 不刪除

bool getpop(plqueue pl, int *rtval)

if(rtval != null)

return true;

}bool isempty(plqueue pl)

main.c

#include #include "lsqueue.h"

int main()

int tmp;

while(!isempty(&head))

return 0;

}

資料結構學習之 帶有頭節點的迴圈鍊錶

pragma once include 帶頭節點的迴圈鍊錶 迴圈鍊錶尾節點的next指向頭節點 clist為一條鍊錶,cnode 乙個節點的位址 typedef struct cnode cnode,clist clist cnode 初始化 void initlist clist plist 頭插...

資料結構學習 佇列

定義 佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為隊頭。佇列不允許在中間部位進行操作!假設佇列是q a1,a2,an 那麼a1就是隊頭元素,而a...

資料結構學習之棧 佇列等

gdb除錯段錯誤 1.ulimit c unlimited 2.ulimit c 1000 3.gcc 檔案 g 4.執行程式 a.out 生成core檔案 5.gdb a.out core 順序棧1.出棧 datatype popseqstack seqstack stack 功能 從順序棧中出棧...