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

首頁 > 學院 > 開發設計 > 正文

C#如何實現雙向鏈表

2019-11-17 03:36:15
字體:
來源:轉載
供稿:網友
1<P> </P>
2雙向鏈表的算法描述和單向鏈基本相同,但是雙向鏈表在刪除和插入時與單向鏈表有很大的不同。
1雙向鏈表在刪除結點時,不但要修改結點的直接后繼指針,還要同時修改結點的直接前驅指針。
1在插入時更是要修改插入結點的前驅和后繼的兩個方向上的指針。具體代碼如下:
 
01public class Objects 
02
03     private int number;  
04     private string name; 
05     private int counter; 
06     //構造函數 
07     public Objects(int num, string Name, int count) 
08     
09         number = num; 
10         name = Name; 
11         counter = count; 
12     
13     public int Number 
14     
15         get 
16         
17             return number; 
18         
19         set 
20         
21             number = value; 
22         
23     
24     public string Name 
25     
26         get 
27         
28             return name; 
29         
30         set 
31         
32             name = value; 
33         
34     
35     public int Counter 
36     
37         get 
38         
39             return counter; 
40         
41         set 
42         
43             counter = value; 
44         
45     
46}
代碼
//結點類
public class ListNode
{
public ListNode(Objects bugs)
{
goods
= bugs;
}
/**/
/// <summary>
/// 前一個
/// </summary>
public ListNode Previous;
/**/
/// <summary>
/// 后一個
/// </summary>
public ListNode Next;
public ListNode next
{
get
{
return Next;
}
set
{
Next
= value;
}
}
/**/
/// <summary>
///
/// </summary>
public Objects goods;
public Objects Goods
{
get
{
return goods;
}
set
{
goods
= value;
}
}
}

 在asp.net 中的雙向鏈表的實現

定義鏈表中的節點的代碼如下。

代碼
pic class Clists
{
public Clists()
{
//構造函數
//初始化
ListCountValue = 0;
Head
= null;
Tail
= null;
}
/**/
/// <summary>
/// 表名
/// </summary>
private string clistname = "";
public string ClistName
{
get
{
return clistname;
}
set
{
clistname
= value;
}
}
/**/
/// <summary>
/// 頭指針
/// </summary>
private ListNode Head;

/**/
/// <summary>
/// 尾指針
/// </summary>
private ListNode Tail;

/**/
/// <summary>
/// 當前指針
/// </summary>
private ListNode Current;
public ListNode current
{
get
{
return Current;
}
set
{
Current
= value;
}
}

/**/
/// <summary>
/// 鏈表數據的個數
/// </summary>
private int ListCountValue;
在鏈表尾部添加數據的實現代碼如下。
/**/
/// <summary>
/// 尾部添加數據
/// </summary>
public void Append(Objects DataValue)
{
ListNode NewNode
= new ListNode(DataValue);
if (IsNull())
//如果頭指針為空
{
Head
= NewNode;

Tail
= NewNode;
}
else
{
Tail.Next
= NewNode;

NewNode.Previous
= Tail;

Tail
= NewNode;
}

Current
= NewNode;

//鏈表數據個數加一

ListCountValue
+= 1;

}
刪除當前數據的實現代碼如下。


/**/
/// <summary>
/// 刪除當前的數據
/// </summary>
public void Delete()
{
//若為空鏈表

if (!IsNull())
{
//若刪除頭
if (IsBof())
{
Head
= Current.Next;
Current
= Head;
ListCountValue
-= 1;
return;
}
//若刪除尾
if (ISEOf())
{
Tail
= Current.Previous;
Tail.next
= null;
Current
= Tail;
ListCountValue
-= 1;
return;
}
//若刪除中間數據
Current.Previous.Next = Current.Next;
Current
= Current.Previous;
ListCountValue
-= 1;
return;
}
}
/**/
/// <summary>
/// 向后移動一個數據
/// </summary>
public void MoveNext()
{
if (!IsEof()) Current = Current.Next;
}
/**/
/// <summary>
/// 向前移動一個數據
/// </summary>
public void MovePrevious()
{
if (!IsBof()) Current = Current.Previous;
}
/**/
/// <summary>
/// 移動到第一個數據
/// </summary>
public void MoveFrist()
{
Current
= Head;
}
/**/
/// <summary>
/// 移動到最后一個數據
/// </summary>
public void MoveLast()
{
Current
= Tail;
}
/**/
/// <summary>
/// 判斷是否為空鏈表
/// </summary>
public bool IsNull()
{
if (ListCountValue == 0)
return true;
else
return false;
}
/**/
/// <summary>
/// 判斷是否為到達尾部
/// </summary>
public bool IsEof()
{
if (Current == Tail)
return true;
else
return false;
}
/**/
/// <summary>
/// 判斷是否為到達頭部
/// </summary>
public bool IsBof()
{
if (Current == Head)
return true;
else
return false;
}
public Objects GetCurrentValue()
{
return Current.goods;
}
/**/
/// <summary>
/// 取得鏈表的數據個數
/// </summary>

public int ListCount
{
get
{
return ListCountValue;
}
}
清空鏈表的實現代碼如下。


/**/
/// <summary>
/// 清空鏈表
/// </summary>
public void Clear()
{
MoveFrist();
while (!IsNull())
{
//若不為空鏈表,從尾部刪除
Delete();
}
}
在當前位置前插入數據的代碼如下。


/// <summary>
/// 在當前位置前插入數據
/// </summary>
public void Insert(Objects DataValue)
{
ListNode NewNode
= new ListNode(DataValue);
if (IsNull())
{
//為空表,則添加
Append(DataValue);
return;
}
if (IsBof())
{
//為頭部插入
NewNode.Next = Head;
Head.Previous
= NewNode;
Head
= NewNode;
Current
= Head;
ListCountValue
+= 1;
return;
}
//中間插入
NewNode.Next = Current;
NewNode.Previous
= Current.Previous;
Current.Previous.Next
= NewNode;
Current.Previous
= NewNode;
Current
= NewNode;
ListCountValue
+= 1;
}
進行升序插入的實現代碼如下。


/**/
/// <summary>
/// 進行升序插入
/// </summary>
public void InsertAscending(Objects InsertValue)
{
//參數:InsertValue 插入的數據
//為空鏈表
if (IsNull())
{
//添加
Append(InsertValue);
return;
}
//移動到頭
MoveFrist();
if ((InsertValue.Number < GetCurrentValue().Number))
{
//滿足條件,則插入,退出
Insert(InsertValue);
return;
}
while (true)
{
if (InsertValue.Number < GetCurrentValue().Number)
{
//滿族條件,則插入,退出
Insert(InsertValue);
break;
}
if (IsEof())
{
//尾部添加
Append(InsertValue);
break;
}
//移動到下一個指針
MoveNext();
}
}
進行降序插入的代碼如下。

/**/
/// <summary>
/// 進行降序插入
/// </summary>

/**/
/*貨物入庫*/
public void InsertUnAscending(Objects InsertValue)
{
//參數:InsertValue 插入的數據
//為空鏈表
if (IsNull())
{
//添加
Append(InsertValue);
return;
}
//移動到頭
MoveFrist();
if (InsertValue.Number > GetCurrentValue().Number)
{
//滿足條件,則插入,退出
Insert(InsertValue);
return;
}
while (true)
{
if (InsertValue.Number > GetCurrentValue().Number)
{
//滿足條件,則插入,退出
Insert(InsertValue);
break;
}
if (IsEof())
{
//尾部添加
Append(InsertValue);
break;
}
//移動到下一個指針
MoveNext();
}
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产成人精品一区二区| 91国自产精品中文字幕亚洲| 欧美激情在线观看视频| 性亚洲最疯狂xxxx高清| 精品久久久久久中文字幕一区奶水| 国产精品一区二区三区在线播放| 青青精品视频播放| 亚洲国产成人一区| 国产精品久久久久久久久免费看| 欧美性猛交xxxx黑人| 国产啪精品视频| 中文字幕av一区二区三区谷原希美| 久久久国产一区二区三区| 久久人91精品久久久久久不卡| 亚洲一级免费视频| 欧美激情精品久久久久久变态| 青青草原成人在线视频| 国产精品免费电影| 日韩免费在线观看视频| 超薄丝袜一区二区| 亚洲高清色综合| 日韩极品精品视频免费观看| 日韩精品福利在线| 久久国产精品网站| 国产精品第一页在线| 国产高清在线不卡| 国产自产女人91一区在线观看| 欧美黑人一级爽快片淫片高清| 久久久女女女女999久久| 欧美黄色小视频| 午夜欧美不卡精品aaaaa| 国产97免费视| 国产欧美日韩亚洲精品| 国产视频久久久久久久| 精品国产欧美一区二区三区成人| 国内外成人免费激情在线视频网站| 亚洲第一中文字幕在线观看| 在线性视频日韩欧美| 欧美三级xxx| 狠狠久久亚洲欧美专区| 精品国产一区av| 91久久精品久久国产性色也91| 国产成人精品视频在线观看| 国产精品成人免费视频| 精品欧美一区二区三区| 91麻豆国产语对白在线观看| 日韩电影在线观看永久视频免费网站| 亚洲视频在线免费观看| 日韩av影院在线观看| 欧美一级大胆视频| 日韩av快播网址| 成人a视频在线观看| 久久香蕉国产线看观看网| 久久久久久久久久亚洲| 久久精品99久久香蕉国产色戒| 日韩网站免费观看| 欧美高清在线播放| 国产99久久精品一区二区| 精品成人乱色一区二区| 久久成人精品一区二区三区| 成人av番号网| 亚洲精品视频免费在线观看| 日韩美女主播视频| 中文字幕亚洲综合| 欧美激情网友自拍| 亚洲美女在线看| 日韩精品在线观看一区| 午夜精品在线观看| 国产v综合ⅴ日韩v欧美大片| 日韩精品一二三四区| 97热在线精品视频在线观看| 成人免费视频xnxx.com| 成人国产精品久久久久久亚洲| 精品久久久精品| 国产精品亚洲片夜色在线| 久久精品国产久精国产思思| 日韩高清有码在线| 亚洲视频视频在线| 97av视频在线| 色狠狠av一区二区三区香蕉蜜桃| 亚洲国产天堂网精品网站| 久久精视频免费在线久久完整在线看| 欧美成人黄色小视频| 久久在线免费视频| 久久久999精品视频| 欧美高清videos高潮hd| 日韩成人激情视频| 久久久久久国产三级电影| 亚洲在线第一页| 中文字幕一精品亚洲无线一区| 51久久精品夜色国产麻豆| 欧美洲成人男女午夜视频| 91精品久久久久久久久中文字幕| 在线播放国产精品| 午夜精品www| 91九色国产视频| 国模私拍一区二区三区| 日韩av在线播放资源| 欧美激情一区二区三区久久久| 亚洲丝袜在线视频| 国产精品中文在线| 亚洲免费人成在线视频观看| 亚洲欧洲在线免费| 精品亚洲精品福利线在观看| 97成人精品视频在线观看| 亚洲国产另类 国产精品国产免费| 97碰碰碰免费色视频| 日韩综合中文字幕| 亚洲第一中文字幕| 日韩av在线免费观看| 国产精品丝袜视频| 国产精品久久久久av| 亚洲aaa激情| 精品亚洲一区二区三区在线播放| 国产最新精品视频| 久久久伊人欧美| 福利精品视频在线| 亚洲新声在线观看| 一区二区三区四区精品| 亚洲丝袜av一区| 亚洲va久久久噜噜噜久久天堂| 久久久久久久久久久免费精品| 清纯唯美日韩制服另类| 在线观看免费高清视频97| 亚洲精品国产精品国产自| 亚洲www视频| 国产日韩精品在线观看| 国产精品视频在线播放| 国产精品久久久久久久久男| 国产精品视频内| 欧美日韩午夜激情| 国产精品91久久久久久| 秋霞av国产精品一区| 欧美性xxxx极品hd满灌| 国产精品h在线观看| 亚洲美女福利视频网站| 伊人伊人伊人久久| 欧美裸体xxxx极品少妇| 亚洲精品午夜精品| 国产欧美日韩中文字幕| 精品在线小视频| 亚洲人成在线观| 久久久久久久久亚洲| 亚洲精品第一国产综合精品| 亚洲欧洲午夜一线一品| 国产玖玖精品视频| 欧美日韩高清区| 国产91久久婷婷一区二区| 国产精品久久久久国产a级| 亚洲第一级黄色片| 久久精品国产电影| 日本19禁啪啪免费观看www| 欧美丝袜第一区| 韩国福利视频一区| 欧美裸体视频网站| 欧美午夜www高清视频| 国产亚洲精品成人av久久ww| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲嫩模很污视频| 欧美日产国产成人免费图片| 亚洲激情视频在线观看| 一区二区成人av| 国产丝袜一区视频在线观看| 九九视频直播综合网|