資料結構練習 用C 寫靜態鍊錶

2021-09-23 20:56:12 字數 1743 閱讀 4986

學習完單鏈表之後,瞧著靜態鍊錶頗為有趣,於是又動手實現一通。

這次把整個命名空間都放上來啦,慣例把增刪改查都練習一遍,感覺今天鍊錶對結構的運用更為巧妙,寫起來神清氣爽,目前不清楚除了裝逼有什麼實用價值- -。咳。

簡單來說就是用陣列結構實現乙個單鏈表,然後就意識到,大概lua用table實現類也是乙個道理。

資料的結構分為兩種型別,一種是原子型別一種是結構型別,既然類和陣列都是結構型別,不如九九歸一,大智慧型啊!

namespace staticlists

console.writeline("--------------------------");

print(sll);

console.writeline();

sll.listinsert(3, 99);

console.writeline("--------------------------");

print(sll);

console.writeline();

sll.setdata(4, 10);

console.writeline("--------------------------");

print(sll);

console.writeline();

console.writeline("--------------------------");

sll.listdelete(4);

print(sll);

console.readline();

}static void print(staticlinkedlist sll)

=\t",i,data);}}

}public struct staticnode

/// /// 靜態鍊錶

///

/// 陣列的第乙個原屬的cur用來存放備用鍊錶第乙個結點的下標

/// 陣列的最後乙個元素的cur用來存放煉表頭的下標

public class staticlinkedlist

//staticnodes[maxsize - 1] = new staticnode();

} /// /// 申請結點

///

/// 下標

public int mallocsll()

return i;

}/// /// 釋放節點

///

/// 釋放的下標

public void freesll(int index)

public int getlength()

return j;

}public bool listinsert(int index, int data)

else

int num = staticnodes[k].cur;

staticnodes[k].cur = staticnodes[num].cur;

freesll(num);

console.writeline("刪除成功");}}

public void setdata(int index,int data)

staticnodes[k].data = data;}}

public bool getdate(int index,ref int data)

else

data = staticnodes[k].data;

return true;}}

}}

資料結構練習 用C 寫單鏈表

一時興起用c 實現了乙個鍊錶,本來想著寫了刪改查再記錄下來,現在覺得還是先寫上來吧。咕咕咕,噠,終於補完了 全都寫上注釋了。但是記憶體釋放問題,好像是會自動釋放但是什麼時候釋放要不要手動釋放啊還是不懂 單鏈表節點資料結構 class node 單鏈表 class linklist 加入到尾部 pub...

C資料結構 靜態鍊錶

對於線性鍊錶可用一維陣列來進行描述,這種描述方法便於在沒有指標型別的高階程式語言中使用鍊錶結構,即使用陣列描述的鍊錶稱為靜態鍊錶。由於全域性陣列是儲存在靜態區也叫做靜態鍊錶。c語言具有指標能力使其非常容易地操作記憶體中的位址和資料,對於物件導向的語言雖然不使用指標,但因為啟用了物件引用機制,從某種角...

資料結構鍊錶 靜態鍊錶

1 在這裡我們首先要複習一下鍊錶c語言的定義 這看起來很簡單,但實際上至關重要!data域 存放結點值的資料域。next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 也就是說next域儲存的是乙個位址,這個位址是下一節點的位址。注意 鍊錶通過每個結點的鏈域將線性表的n個結點按其邏輯順序鏈結在一...