在實現佇列的鍊錶結構中,時間複雜度最優的是

2021-09-28 16:42:38 字數 343 閱讀 1623

僅設定頭指標的單迴圈鍊錶

僅設定尾指標的單迴圈鍊錶

僅設定頭指標的雙向鍊錶

僅設定尾指標的雙向鍊錶

前提:佇列中的結點從隊尾插入,從隊頭刪除;

佇列中的結點的指向是從隊頭指向隊尾,因為是迴圈鍊錶,則隊尾結點的下乙個結點是隊頭。

如果只設頭指標,則出列容易,頭指標往後移乙個就行;入列則要遍歷整個佇列,確定隊尾後再插入,所以出列是o(1),入列是o(n)

如果只設尾指標,則入列時直接插入,出列只須後移乙個結點即可找到隊頭結點,都是常數級的時間耗費,即都是o(1)

一般來說迴圈佇列不用設頭指標,只需乙個指向尾結點的指標就行了,確定頭和尾都很容易。

佇列的鍊錶實現!

include include typedef char elemtype typedef struct qnode qnode typedef struct liqueue 初始化佇列 void initqueue liqueue q 判斷是否為空 int queueempty liqueue q...

佇列的鍊錶實現

include include using namespace std const int maxsize 10 佇列的容量 單個結點結構體 typedef struct node pnode 佇列結構體 typedef struct queue pqueue 函式實現 建立空佇列 pqueue c...

佇列的鍊錶實現

include include includeconst int max 10 typedef struct node protonode protonode 相當與struct node struct node typedef protonode position position 實際上和 pr...