集合的順序儲存是通過陣列實現的,而集合的鏈結儲存是通過儲存結點之間的鏈結實現的,鏈結形成的結果是乙個鏈結表。構成鏈結表的每個結點由值域和指標域構成,值域儲存資料,指標域是下乙個結點的引用,以此來指向下乙個結點。這樣乙個結點鏈結另乙個結點構成的是乙個單鏈表。第一結點稱作表頭結點,最後乙個結點稱作表尾結點。前面的結點稱作前驅結點,指標指向的結點稱作後繼結點。
package set;
/** * 鍊錶儲存的結點由值域和指標域組成
*/public
class
node
public
node(object element, node next)
}
package set;
public
class
linkedset
implements
set
/*** 1.操作表頭指標遍歷鍊錶,如果鍊錶中有相同的資料則返回false
* 2.如果鍊錶中沒有,此時表頭指標已經是表尾結點了。
* 3.在鍊錶的尾部插入元素
**@param obj
*@return
*/@override
public
boolean
add(object obj)
//如果p.next=null表明是表尾結點,在鍊錶的結尾插入元素
p.next = new node(obj, null);
length++;
return
true;
}@override
public
boolean
remove(object obj)
//p是附加頭結點,p.next是要刪掉的元素
if (p.next != null)
return
false;
}@override
public
boolean
contains(object obj)
return
false;
}@override
public object value(int index)
node p = head;
int counter = 0;
while (p.next != null)
return
null;
}@override
public object find(object obj)
return
null;
}@override
public
intsize()
@override
public
boolean
isempty()
@override
public
void
outputall()
}@override
public set union(set set)
node q = linkedset.head;
while (q.next != null)
return destset;
}@override
public set intersection(set set)
return tempset;
}@override
public
void
clear()
@override
public string tostring()
}}
package settest;
import set.linkedset;
public
class
linkedsettest
}
資料結構 集合
陣列 陣列長度在初始化的時候就已經固定,不適合物件數量未知的情況。下圖為collection 於的部落格 下圖為map 於網路 1.介紹一下list比較常用的集合 有序,值允許重複 1 arraylist 底層實現 private static final object defaultcapacit...
資料結構 集合
乙個識別符號 集合set 可以儲存多個資料,資料不能重複。集合與陣列的區別,集合的內容具有唯一性 全等匹配 宣告集合 let f70 newset f71 集合賦值 let f71 let f70 newset f71 集合賦值 f70.add 1 f70 add 2 f70.add 1 f70 a...
資料結構實現基礎(三)
上一講學習了一些基本的資料型別像陣列,結構。我們還學習了一些指標的基本概念。這一講,我們主要學習兩種資料型別,一種叫聯合,也叫共同體。還有一種就是鍊錶。共同體同結構體在宣告形式和訪問方式上有些類似,但是它和結構體是完全不一樣的。所謂共同體型別,是指將不同的資料項組成乙個整體,它們在記憶體中占用同一段...