學習完單鏈表之後,瞧著靜態鍊錶頗為有趣,於是又動手實現一通。
這次把整個命名空間都放上來啦,慣例把增刪改查都練習一遍,感覺今天鍊錶對結構的運用更為巧妙,寫起來神清氣爽,目前不清楚除了裝逼有什麼實用價值- -。咳。
簡單來說就是用陣列結構實現乙個單鏈表,然後就意識到,大概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個結點按其邏輯順序鏈結在一...