佇列的實現就顯的有點麻煩了,因為佇列是一種先進先出的資料結構,如果是用陣列去做的話,就會導致陣列的浪費,因為當你pop的時候,頭指標向後移動,會導致index從0開始向後面的逐步浪費,但是你如果在pop操作後讓陣列先前移動的話,又會導致時間複雜度上的提公升,所以用陣列去完成佇列的操作就會顯的不是很完美;
(其實我覺得可以讓陣列變成乙個環路,當尾指標指向size的時候就讓他從0開始,當頭和尾相撞的時候呢就報超模了,在擴容的時候就擴容(判斷尾指標的位置進行一下複製的操作)這樣的話就不會出現上述的問題,但是在擴容的時候會出現複雜度為n的複製操作,但是在空間的利用上還是pop的操作上都比上述的兩種方法好,今後我會完成放出來的)
但是如果用鍊錶去實現佇列的操作就不會顯的怎麼笨重,pop的時候直接彈出頭節點,push操作就在尾節點上加上乙個節點,所以我比較傾向與用鍊錶完成。
**的完成:
//對節點的定義
class
node
public
node()
}class
queue
else
count++;}
//佇列彈出隊首元素
public
intpop()
//判斷佇列是否空
public
boolean
isempty()
//遍歷元素
public
void
iterator()
}}//驗證是否完成操作
public
class
queuee
else
queue.
add(
111);if
(!queue.
isempty()
)int var = queue.
pop();
if(queue.
isempty()
)}}
只做了一些基礎操作,還有很多的操作未實現 佇列的鍊錶實現!
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...