資料結構(三)鏈結儲存實現集合Set

2021-08-19 04:02:39 字數 1994 閱讀 6321

集合的順序儲存是通過陣列實現的,而集合的鏈結儲存是通過儲存結點之間的鏈結實現的,鏈結形成的結果是乙個鏈結表。構成鏈結表的每個結點由值域指標域構成,值域儲存資料,指標域是下乙個結點的引用,以此來指向下乙個結點。這樣乙個結點鏈結另乙個結點構成的是乙個單鏈表。第一結點稱作表頭結點,最後乙個結點稱作表尾結點。前面的結點稱作前驅結點,指標指向的結點稱作後繼結點。

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...

資料結構實現基礎(三)

上一講學習了一些基本的資料型別像陣列,結構。我們還學習了一些指標的基本概念。這一講,我們主要學習兩種資料型別,一種叫聯合,也叫共同體。還有一種就是鍊錶。共同體同結構體在宣告形式和訪問方式上有些類似,但是它和結構體是完全不一樣的。所謂共同體型別,是指將不同的資料項組成乙個整體,它們在記憶體中占用同一段...