C 模擬鍊錶資料結構的例項解析

2022-10-06 07:24:11 字數 1931 閱讀 2789

寫在前面

模組化程式設計是大多數初學者必經之路,然後可能你走向了結構化程式設計,鍊錶是一種典型結構模式,它的出現克服了陣列必須預先知道大小的缺陷,聽不懂?你只需要記住,鍊錶結構非常牛叉就可以了,學習這種結構對我們的邏輯思維有很大提公升。

什麼是鍊錶結構呢?

鍊錶是一種物理儲存單元上非連續、非順序的儲存結構。比如a->b->c,這種結構,我們可以理解為a連線著b,b連線c,像這種結構我們就叫做鍊錶結構。對了,火車的車廂,其實就是鍊錶的結構的最好說明

為什麼要有鍊錶結構呢?

學過計算機的都知道陣列(array),陣列常用切好用,但也存在問題。首先,陣列必須需要知道空間大小(int age = new int[100], 必須宣告長度),其次,對於元素之間插入、刪除操作效率很低(如何在陣列中間插入乙個元素?)。

鍊錶的出現,完美的解決了這些問題。

如何實現鍊錶

首先我們需要宣告一種結構

//鍊錶結構: 構造節點 - 連線節點

//template

class node

//鍊錶結構: 構造節點 - 連線節點

//template

class node

我們可以把上面的這種結構看做是乙個禮品盒,可以存放整形數值。

然後我們建立乙個mylist先生,這位先生就使用node去存放整形物品,而且使用了鍊錶結構哦!

class mylist

//存放物品

public void add(int value)

else //2 3 4..... 次

}}class mylist

//存放物品

public void add(int value)

else //2 3 4..... 次}}

然後,我們可以在客戶端測試一下:

public s程式設計客棧tatic void main (string args)

}public static void main (string args)

}我們自己定義的乙個整形集合就這樣ok了。它有兩個優點:可以存放任意多個元素!方便元素的插入和刪除。

雙向鍊錶的定義和簡單操作:

雙向鍊錶其實是單鏈表的改進。當我們對單鏈表進行操作時,有時你要對某個結點的直接前驅進行操作時,又必須從表頭開始查詢。這程式設計客棧是由單鏈表結點的結構所限制的。因為單鏈表每個結點只有乙個儲存直接後繼結點位址的鏈域,那麼能不能定義乙個既有儲存直接後繼結點位址的鏈域,又有儲存直接前驅結點位址的鏈域的這樣乙個雙鏈域結點結構呢?這就是雙向鍊錶。在雙向鍊錶中,結點除含有資料域外,還有兩個鏈域,乙個儲存直接後繼結點位址,一般程式設計客棧稱之為右鏈域;乙個儲存直接前驅結點位址,一般稱之為左鏈域。

namespace dounlylinkedlist

public node(object element)

} //鍊錶操作的類

public class linkedlist

//查詢結點

private node find(object item)

return current;

}//插入結點

public void insertnode(object item,object postionitem)

}//刪除結點

public void remove(object item)

}//查詢雙向鍊錶最後乙個結點元素

private node findlast()

return current;

}//逆向列印雙向鍊錶

public void printreverse()

}//列印雙向鍊錶

public void print()}}}

鍊錶應用場景

應用場景:集合(動態陣列)、貪吃蛇、地圖的迴圈生成、***效果等等,鍊錶可以幫助我們完成很多事情。

本文標題: c#模擬鍊錶資料結構的例項解析

本文位址:

C語言資料結構之使用鍊錶模擬棧的例項

c語言資料結構之使用鍊錶模擬棧的例項 以下是 使用鍊錶模擬棧 的簡單示例 1.用c語言實現的版本 include include typedef char datatype 程式設計客棧 typedef struct node stack stack m stack null 建立鍊錶,從表頭插入新...

資料結構 模擬單向鍊錶

今天介紹手動模擬單向鍊錶。個人理解的鍊錶的結構類似於 拆盒子遊戲,表面上看儲存是乙個鏈條結構,實際儲存是重複包裝的方式,我們需要實現的刪除,插入,更新 只是在層層盒子中間去掉盒子,增加盒子,該盒子的方式 首先是基本的儲存結構 單向鍊錶的儲存結構如下,單向鍊錶為當前的 物件中有乙個當前物件的屬性。可以...

資料結構 單向鍊錶例項

題目 出自 c 程式設計基礎 建立乙個結點包括職工的編號 年齡和性別的單向鍊錶,分別定義函式完成以下功能 1 遍歷該鍊錶輸出全部職工資訊 2 分別統計出男女性職工的人數 3 在鍊錶尾部插入新職工結點 4 刪除指定編號的職工結點 5 刪除年齡在60歲以上的男性職工或55歲以上的女性職工結點,並儲存在另...