圖一.字串型態的連結串列 |
QList<T>
|
QLinkedList<T>
|
|
特性
|
基於索引值存取(index-based access)所要的資料
|
基於迭代器存取(iterator -based access)所要的資料
|
利用索引值直接存取任一項目(item)
|
存取任一項目(item)時,可能需要走訪所有項目
|
|
具有陣列(Array)的特性,
因此插入或刪除資料,需要搬動其他項目
|
可快速在特定位置插入資料
|
|
存取
|
易存取資料
|
不易存取資料
|
時間複雜度
|
||
插入
|
O(n)
|
O(1)
|
Prepending
|
Amort. O(1)
|
O(1)
|
Appending
|
Amort. O(1)
|
O(1)
|
我們先定義新的資料類型結構strNode,結構成員data為Qt的QString,而next為指向結構strNode的指標變數.typedef主要給資料型態定義新的名稱,而這裡不但將struct strNode命名為nodeptr,而且nodeptr為指向結構strNode的指標變數.
typedef struct strNode
{
QString data;
strNode *next;
}*nodeptr;
例如,我們直接使用nodeptr宣告指向結構strNode的指標變數head.
nodeptr head;
作者有話要說:
下一篇將利用類別來實作如何在串列後面加入(append)項目.
0 comments:
張貼留言