上一篇文章介紹的是陣列,並且定義陣列是由多個相同型別的元素所組成的串列。
由許多同類型的元素依照特定的順序,線性排列而成的有序集合。
串列中的元素是有順序性的,兩個元素之間必定有前後的關係,有次序性排列之資料。
反之,集合中的元素就沒有前後之分別。
在日常生活中,像是數字(1~9)、英文字母(A~Z)、季節(春夏秋冬)都是有次序性的資料。
串列實作方式分為循序配置串列
與鏈結配置串列
。
設計Array時,資料結構簡單,可隨機存取(Random access),且搜尋方便,易讀取資料,
但是!!!
陣列事先需宣告固定記憶空間,因此要刪除或加入新資料時,造成需要移動大量資料才能完成。
Linked list 解決了陣列需要預先知道資料大小的缺點,基本上是以變更鏈結指標的方式儲存資料,資料可以在串列中的任一個位置加入新資料,做刪除資料等動作,在實際需要使用時,才會配置記憶體空間。
題目依然是算出3位學生數學成績的平均值:
import java.util.ArrayList;
public class list
{
public static void main(String[] argv)
{
LinkNode student1 = new LinkNode(50);
LinkNode student2 = new LinkNode(64);
LinkNode student3 = new LinkNode(88);
ArrayList <LinkNode> Score = new ArrayList<>();
Score.add(student1);
Score.add(student2);
Score.add(student3);
double sum = 0;
for(int i = 0; i < Score.size(); i++)
{
sum = sum + Score.get(i).score;
}
double average = sum / (Score.size());
System.out.print("average:" + average);
}
public static class LinkNode
{
double score;
public LinkNode(double s)
{
score = s;
}
}
}
輸出結果:
average:67.33333333333333
細談資料結構 第六版
ISBN 978-986-312-014-8
今天看到一句話,有點感觸。
有時候溝通上有落差,是因為雙方沒有在同一個水平上
那就努力讓自己與對方站上同一個高度,共勉之。