.
Linked List 連結串列是很常使用到的資料結構之一
Stack 跟Queue 都是此方法的變形
Linked List的特點就是可以將資料存在不連續的記憶體中
當要用的時候在New記憶體空間,不會造成額外的浪費
與陣列不同的地方是,陣列為使用連續的記憶體位置
以下為 Linked List的用法
- using System;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Collections.Generic;
-
- namespace linked_list
- {
- public partial class Form1 : Form
- {
- private int count = 0;
- LinkedList<String> list = new LinkedList<String>();
-
- public Form1()
- {
- InitializeComponent();
- }
-
- private void Form1_Load(object sender, EventArgs e)
- {
- list.AddLast("アクジキング");
- list.AddLast("ネクロズマ");
- list.AddLast("マギアナ");
- list.AddLast("マーシャドー");
- }
-
- private void button3_Click(object sender, EventArgs e)
- {
- richTextBox1.Text = "";
- textBox1.Text = list.First.Value; // get first element
- textBox2.Text = list.ElementAt(2); // get list element at position 2
- textBox3.Text = list.Last.Value; // get last element
-
-
- foreach (String s in list) // list all element
- {
- count++;
-
- if (list.Count - count == 0)
- {
- richTextBox1.Text += s; // last element
- }
- else
- {
- richTextBox1.Text += s + ",";
- }
- }
- }
-
- private void button1_Click(object sender, EventArgs e)
- {
- list.AddLast(textBox4.Text);
- }
-
- private void button2_Click(object sender, EventArgs e)
- {
- list.Remove(textBox4.Text); //delete by index
- }
- }
- }
執行畫面:
首先列出全部成員,預設放入四個成員
欄位1呈現第一個成員
欄位2呈現第二個成員
欄位3呈現最後一個成員
欄位4呈現所有成員
接著加入成員 カミツルギ , 呈現出的結果列尾變成剛剛加入的成員
在加入 テッカグヤ ,觀察整體成員的變化,每次加入一定都會補在列尾
最後是刪除成員 ネクロズマ ,下圖呈現的結果就會看到該成員已被移除
成員二的位置變成剛剛成員三
圖解
初始狀態
加入一個成員
在加入一個成員
刪除第二個成員