日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#知识点总结系列:C# 数据结构

發(fā)布時(shí)間:2023/12/20 C# 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#知识点总结系列:C# 数据结构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

線性表(Linear List

???????? 線性表是一個(gè)線性結(jié)構(gòu),它是一個(gè)含有n≥0個(gè)結(jié)點(diǎn)的有限序列,對(duì)于其中的結(jié)點(diǎn),有且僅有一個(gè)開始結(jié)點(diǎn)沒有前驅(qū)但有一個(gè)后繼結(jié)點(diǎn),有且僅有一個(gè)終端結(jié)點(diǎn)沒有后繼但有一個(gè)前驅(qū)結(jié)點(diǎn),其它的結(jié)點(diǎn)都有且僅有一個(gè)前驅(qū)和一個(gè)后繼結(jié)點(diǎn)。

線性表的順序存儲(chǔ)結(jié)構(gòu)—順序表

???????? 線性表采用順序存儲(chǔ)的方式存儲(chǔ)就稱之為順序表。順序表是將表中的結(jié)點(diǎn)依次存放在計(jì)算機(jī)內(nèi)存中一組地址連續(xù)的存儲(chǔ)單元中。

順序表的特點(diǎn)

??? 1.容量固定

???????? 存儲(chǔ)順序表的元素需要一整塊內(nèi)存空間,因而順序表的容量一旦確定,便不能更改。

??? 2.訪問速度快

???????? 假設(shè)每個(gè)元素占用的空間大小為L(zhǎng)個(gè)字節(jié),其中第一個(gè)單元的存儲(chǔ)地址則是該結(jié)點(diǎn)的存儲(chǔ)地址,并設(shè)表中開始結(jié)點(diǎn)a1的存儲(chǔ)地址(簡(jiǎn)稱為基地址)是LOC(a1),那么結(jié)點(diǎn)ai的存儲(chǔ)地址LOC(ai)可通過下式計(jì)算:LOC(ai)= LOC(a1)+L*(i-1)?? 1≤i≤n。

?

數(shù)組

???????? 線性表的順序存儲(chǔ)結(jié)構(gòu)在C#中的最直接表現(xiàn)形式就是數(shù)組。在C#語言中,數(shù)組是最基礎(chǔ)也是存取速度最快的一種集合類型。數(shù)組是引用類型,保存它們所需的內(nèi)存空間會(huì)在托管堆上分配,一旦數(shù)組被創(chuàng)建,其中的所有元素將被初始化為它們的默認(rèn)值。

    int[] arrayInt= new int[10];
arrayInt[6] = 5;
arrayInt[8] = 3;

???????? 以上代碼聲明了一個(gè)值類型int的數(shù)組,并把它的長(zhǎng)度初始化為10,最后分別給第7和第9個(gè)元素賦值。

???????? 當(dāng)數(shù)組元素為值類型時(shí),數(shù)組對(duì)象存放的是值類型對(duì)象本身。當(dāng)元素為引用類型時(shí),數(shù)組對(duì)象存放的則是對(duì)象的引用(指針)。

    Control[] arrayControl= new Control[8];
arrayControl[4] = new DropDownList();
arrayControl[6] = new TextBox();

???????? 以上代碼聲明了一個(gè)引用類型Control的數(shù)組,并把它的長(zhǎng)度初始化為8,最后分別給第5和第7個(gè)元素賦值。兩個(gè)值是分別DropDownList和TextBox對(duì)象,雖然它們都繼承自Control類,但兩者卻是不同類,它們的大小不一樣。

ArrayList

C#中的ArrayList 的容量是根據(jù)需要自動(dòng)擴(kuò)展的。ArrayList 提供添加、插入或移除某一范圍元素的方法。 Insert(int index, object value)方法用于在指定索引處插入一個(gè)元素。為了保證順序表中的每個(gè)元素物理上相鄰,插入點(diǎn)后面的所有元素都將后移一位。

RemoveAt(int index)方法用于刪除指定索引的元素,刪除指定元素后,刪除點(diǎn)后的所有元素將向前移動(dòng)一位。

?

二叉樹

   二叉樹是樹形結(jié)構(gòu)的一個(gè)重要類型。許多實(shí)際問題抽象出來的數(shù)據(jù)結(jié)構(gòu)往往是二叉樹的形式,即使是一般的樹也能簡(jiǎn)單地轉(zhuǎn)換為二叉樹,而且二叉樹的存儲(chǔ)結(jié)構(gòu)及其算法都較為簡(jiǎn)單,因此二叉樹顯得特別重要。
???  二叉樹(BinaryTree)是n(n≥0)個(gè)結(jié)點(diǎn)的有限集,它或者是空集(n=0),或者由一個(gè)根結(jié)點(diǎn)及兩棵互不相交的、分別稱作這個(gè)根的左子樹右子樹的二叉樹組成。
???這個(gè)定義是遞歸的。由于左、右子樹也是二叉樹, 因此子樹也可為空樹。

二叉樹的深度優(yōu)先遍歷

  1.先序遍歷

  若二叉樹為非空,則過程為:

(1) 訪問根節(jié)點(diǎn)。

(2) 先序遍歷左子樹。

(3) 先序遍歷右子樹。

  2.中序遍歷

  若二叉樹為非空,則過程為:

(1) 按中序遍歷左子樹。

(2) 訪問根結(jié)點(diǎn)。

(3) 按中序遍歷右子樹。

  3.后序遍歷

  若二叉樹為非空,則過程為:

(1) 按后序遍歷左子樹。

(2) 按后序遍歷右子樹

(3) 訪問根結(jié)點(diǎn)。



本文轉(zhuǎn)自程興亮博客園博客,原文鏈接http://www.cnblogs.com/chengxingliang/p/3533908.html:,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的C#知识点总结系列:C# 数据结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。