諸如basic和fortran等許多語言都不支援指標。如果需要鍊錶而又不能使用指標,這時我們可以使用游標(cursor)實現法來實現鍊錶。
在鍊錶的實現中有兩個重要的特點:
資料儲存在一組結構體中。每乙個結構體包含有資料以及指向下乙個結構體的指標。
乙個新的結構體可以通過呼叫malloc而從系統全域性記憶體(global memory)得到,並可以通過free而被釋放。
比如: a[0] = 1, a[1] = 2, a[2] = 3, a[4] = 5, … ; 那麼 a[0] = 1儲存的就是a[1] 的角標, 當從a[0]開始讀, 一直到最後就能把所有的資料讀完.
再比如 : a[0] = 2, a[1] = 3, a[2] = 1, a[3] = 0; a[0] 是儲存a[2]的角標, 而a[2]又儲存a[1]的角標, 整個資料是從a[0]->a[2]->a[1]->a[3]的順序;
簡單的**就先寫出來, 這個需要自己體會一下才能明白, 有一道演算法題用游標就特別的方便
const int max = 1000;
struct node
t[max];
int main()
t[i - 1].next = 0;
for (i = t[0].next; i != 0; i = t[i].next)
printf("%d ", t[i].num);
system("pause");
return
0;}
鍊錶的游標實現
author bbird gl date 2019 7 17 description 鍊錶的游標實現標頭檔案 ifndef cursor h define cursor h define spacesize 100 typedef int elementtype typedef int ptrton...
鍊錶的游標實現
在最開始的學習中,我們實現鍊錶都需要依靠指標來連線鍊錶的各個節點,但是,在一些語言中是不支援指標的,那麼,在不使用指標的情況下,我們就無法實現鍊錶了嗎?當然不是,其實還有另一種鍊錶的實現方式 游標實現!那麼如果想不使用指標,我們必須了解指標在鍊錶中的作用,我們來想一下,以前在寫鍊錶時,我們在那些地方...
鍊錶的游標實現
對於不支援指標的語言,鍊錶可以用游標來表示 鍊錶的游標實現 array陣列分兩部分,一部分為鍊錶部分,有乙個獨立頭節點,下標為1 另一部分為freelist部分,也有獨立的乙個節點,下標為0,對於此部分,相當於乙個棧 進行malloc操作時,從開頭 下標0後 取空間 進行free操作時,被free的...