亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#模擬鏈表數據結構的實例解析

2020-01-24 01:11:28
字體:
來源:轉載
供稿:網友

寫在前面

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

什么是鏈表結構呢?

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

為什么要有鏈表結構呢?

學過計算機的都知道數組(Array),數組常用切好用,但也存在問題。首先,數組必須需要知道空間大?。╥nt[] age = new int[100], 必須聲明長度),其次,對于元素之間插入、刪除操作效率很低(如何在數組中間插入一個元素?)。

鏈表的出現,完美的解決了這些問題。

如何實現鏈表

首先我們需要聲明一種結構

//鏈表結構: 構造節點 - 連接節點//Templateclass Node{  public int num;  //指向下一個元素  public Node next;}//鏈表結構: 構造節點 - 連接節點//Templateclass Node{  public int num;  //指向下一個元素  public Node next;}


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

然后我們創建一個MyList先生,這位先生就使用Node去存放整形物品,而且使用了鏈表結構哦!

class MyList{  public Node currentNode;  public Node point;  public MyList()  {    currentNode = new Node();  }  //存放物品  public void Add(int value)  {    //第一次    if(point == null)    {      currentNode.num = value;      point = currentNode;    }    else  //2 3 4..... 次    {      Node temp = new Node();      temp.num = value;      point.next = temp;      //更新指針      point = temp;    }  }}class MyList{  public Node currentNode;  public Node point;  public MyList()  {    currentNode = new Node();  }  //存放物品  public void Add(int value)  {    //第一次    if(point == null)    {      currentNode.num = value;      point = currentNode;    }    else  //2 3 4..... 次    {      Node temp = new Node();      temp.num = value;      point.next = temp;      //更新指針      point = temp;    }   }}


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

public static void Main (string[] args){  MyList<int> mList = new MyList<int>();  //添加元素  mList.Add(1);  mList.Add(11);  mList.Add(111);  mList.Add(1111);  while(mList.currentNode != null)  {    Console.WriteLine (mList.currentNode.num);    mList.currentNode = mList.currentNode.next;  }}public static void Main (string[] args){  MyList<int> mList = new MyList<int>();  //添加元素  mList.Add(1);  mList.Add(11);  mList.Add(111);  mList.Add(1111);  while(mList.currentNode != null)  {    Console.WriteLine (mList.currentNode.num);    mList.currentNode = mList.currentNode.next;  }}


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

雙向鏈表的定義和簡單操作:

雙向鏈表其實是單鏈表的改進。當我們對單鏈表進行操作時,有時你要對某個結點的直接前驅進行操作時,又必須從表頭開始查找。這是由單鏈表結點的結構所限制的。因為單鏈表每個結點只有一個存儲直接后繼結點地址的鏈域,那么能不能定義一個既有存儲直接后繼結點地址的鏈域,又有存儲直接前驅結點地址的鏈域的這樣一個雙鏈域結點結構呢?這就是雙向鏈表。在雙向鏈表中,結點除含有數據域外,還有兩個鏈域,一個存儲直接后繼結點地址,一般稱之為右鏈域;一個存儲直接前驅結點地址,一般稱之為左鏈域。

namespace DounlyLinkedlist{  //定義雙向鏈表的結點  public class Node  {    public Object Element;    public Node FLink;    public Node BLink;    public Node()    {      Element = null;      FLink = null;      BLink = null;    }    public Node(Object element)    {      Element = element;      FLink = null;      BLink = null;    }  }  //鏈表操作的類  public class LinkedList  {        public Node Header;    public LinkedList()    {      Header = new Node("Header");      Header.FLink = null;      Header.BLink = null;     }    //查找結點    private Node Find(Object item)    {      Node Current = new Node();      Current = Header;      while (Current.Element != item)      {        Current = Current.FLink;      }      return Current;    }    //插入結點    public void InsertNode(Object item,Object postionItem)    {      Node Current = new Node();      Node NewItem = new Node(item);      Current = Find(postionItem);      if (Current != null)      {        NewItem.FLink = Current.FLink;        NewItem.BLink = Current;        Current.FLink = NewItem;      }    }    //刪除結點    public void Remove(Object item)    {      Node P = Find(item);      if (P.FLink != null)      {        P.BLink.FLink = P.FLink;        P.FLink.BLink = P.BLink;        P.BLink = null;        P.FLink = null;      }          }    //查找雙向鏈表最后一個結點元素    private Node FindLast()    {      Node Current = new Node();      Current = Header;      while (!(Current.FLink == null))      {        Current = Current.FLink;      }      return Current;    }    //逆向打印雙向鏈表    public void PrintReverse()    {      Node Current = new Node();      Current = FindLast();      while (!(Current.BLink == null))      {        Console.WriteLine(Current.Element);        Current = Current.BLink;      }    }    //打印雙向鏈表    public void Print()    {      Node Current = new Node();      Current = Header;      while (!(Current.FLink == null))      {        Console.WriteLine(Current.FLink.Element);        Current = Current.FLink;      }    }  }}

鏈表應用場景

應用場景:集合(動態數組)、貪吃蛇、地圖的循環生成、老虎機效果等等,鏈表可以幫助我們完成很多事情。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美交受高潮1| 日韩电影免费观看在线| 久久久久久久久综合| 久久久国产在线视频| 久久天天躁日日躁| 国产精品高清免费在线观看| 欧美日韩国产成人在线| 欧美精品性视频| 91精品视频免费| 日韩欧美有码在线| 色噜噜狠狠色综合网图区| 欧美日韩国产精品一区二区不卡中文| 国产精品电影网| 精品视频在线观看日韩| 国产拍精品一二三| 久久久97精品| 欧美日韩激情小视频| 亚洲最大的成人网| 久久久久久久香蕉网| 久久99国产精品自在自在app| 亚洲已满18点击进入在线看片| 国产亚洲精品美女久久久久| 91成人免费观看网站| 国产有码在线一区二区视频| 久久午夜a级毛片| 日韩精品高清在线观看| 91亚洲精品一区二区| 日本高清不卡在线| 国产69精品久久久久9999| 亚洲一区二区三区在线免费观看| 久久91亚洲人成电影网站| 久久亚洲成人精品| 国产一区二中文字幕在线看| 久久久久久尹人网香蕉| 亚洲精品成a人在线观看| 欧美成人一区二区三区电影| 亚洲欧美精品一区| 久久亚洲国产精品成人av秋霞| 亚洲一级黄色av| 亚洲跨种族黑人xxx| 久久综合88中文色鬼| 国产97免费视| 亚洲欧美国产日韩中文字幕| 久久91亚洲精品中文字幕奶水| 日韩精品在线影院| 欧美激情videos| 国产一区二区三区高清在线观看| 国产精品一区二区久久久久| 欧美国产极速在线| 亚洲电影免费观看| 亚洲国产精品成人精品| 欧美刺激性大交免费视频| 国产999精品视频| 久久国产精品久久久久久| 精品亚洲va在线va天堂资源站| 日本亚洲欧洲色| 欧洲亚洲在线视频| 亚洲美女又黄又爽在线观看| 美日韩在线视频| 欧美大胆a视频| 5566成人精品视频免费| 在线观看日韩www视频免费| 久久夜色精品亚洲噜噜国产mv| 国产日韩av高清| 国产成人综合久久| 日韩中文字在线| 日韩欧亚中文在线| 国产美女久久精品香蕉69| 日韩精品中文字幕在线观看| 一本色道久久综合狠狠躁篇的优点| 日韩一二三在线视频播| 亚洲国产小视频在线观看| 26uuu国产精品视频| 久热精品在线视频| 欧美黄色片免费观看| 亚洲国产97在线精品一区| 久久国产精品亚洲| 亚洲精品自产拍| 久久久噜噜噜久久| 久久精品国产96久久久香蕉| 在线视频国产日韩| 中文字幕亚洲第一| 国产精品视频区| 欧美极品少妇xxxxⅹ裸体艺术| www.亚洲男人天堂| 欧美激情一区二区三级高清视频| 久久欧美在线电影| 国产精品va在线播放我和闺蜜| 国产一区二区三区欧美| 中文字幕日本精品| 欧美男插女视频| 精品中文字幕在线2019| 欧美日韩ab片| 热99久久精品| 久久免费精品视频| 色黄久久久久久| 69av视频在线播放| 国产在线精品一区免费香蕉| 538国产精品一区二区免费视频| 伊人伊成久久人综合网小说| 97福利一区二区| 97超级碰碰碰久久久| 欧美电影免费播放| 91精品视频专区| 黄色一区二区在线| 欧美精品日韩www.p站| 久久精品欧美视频| 68精品国产免费久久久久久婷婷| 久久久久久久久久久久av| 国产精品免费一区| 亚洲福利视频网站| 欧美日韩国产综合新一区| 国产欧美一区二区三区久久| 日韩精品免费观看| 国产精品色悠悠| 日韩av电影中文字幕| 国产成人精品午夜| 亚洲片国产一区一级在线观看| 成人福利网站在线观看11| 欧美日韩亚洲精品内裤| 欧美自拍视频在线观看| 91高潮精品免费porn| 日韩av在线免费观看| 亚洲欧美日韩直播| 国内精品久久影院| 亚洲精选中文字幕| 欧美午夜性色大片在线观看| 亚洲第一网站男人都懂| www.亚洲免费视频| 日日噜噜噜夜夜爽亚洲精品| 亚洲欧洲自拍偷拍| 亚洲欧美国产精品专区久久| 国产精品一区二区av影院萌芽| 久久久久久一区二区三区| 欧美激情小视频| 午夜精品www| 91久久国产婷婷一区二区| 精品国产999| 亚洲一区二区三区在线免费观看| 日日骚av一区| 在线播放日韩精品| 成人精品一区二区三区电影免费| 欧美电影免费在线观看| 欧美电影在线观看网站| 国产精品久久国产精品99gif| 亚洲片在线资源| 在线播放国产一区中文字幕剧情欧美| 国产精品久久久久久久app| 日本精品性网站在线观看| 精品调教chinesegay| 午夜免费日韩视频| 在线电影av不卡网址| 久久久av亚洲男天堂| 成人久久精品视频| 91亚洲精品在线观看| 日本久久久久久久久| 在线播放日韩欧美| 国产成人精品在线| 北条麻妃一区二区在线观看| xxxx欧美18另类的高清| 久久精品国产欧美激情| 日韩小视频在线| 国产成人综合一区二区三区| 精品免费在线视频|