集合和對映 Set and Map

2021-08-23 14:14:34 字數 3707 閱讀 3121

集合是具有某種相似特性的事物的全體。它的重要特點是其中的資料元素無序且不重複,這也就是判斷是否使用該容器的依據。

利用我之前的樹的定義和實現中的bst.go函式來呼叫而實現的

package arr

type set struct

/** * 利用二分搜尋樹來實現結合的curd

*///新增元素到集合中

func (set *set) addset(e int)

//遍歷集合

func (set *set) forset()

//判斷指定元素是否存在於集合內

func (set *set) emptyset(e int) bool

package arr

import (

"container/list"

"fmt"

)type set_list struct{}

var sl = list.new()

/** * 在集合中查詢是否包含指定元素

*/func (set *set_list) find(e int) bool

} return false

}/**

* 迴圈遍歷集合

*/func (set *set_list) foreach()

}/**

* 在集合中新增指定元素

//迴圈輸入slice

for _, v := range words

}} //迴圈完乙個字元以後,插入新的slice

"出來:",dan)

map用於儲存具有對映關係的資料,因此map集合裡儲存著兩組值,一組值用於儲存map裡的key,另外一組值用於儲存map裡的value,key和value都可以是任何引用型別的資料。map的key不允許重複,即同乙個map物件的任何兩個key通過equals方法比較總是返回false。

利用二分搜尋樹或鍊錶都可以簡單的去實現對映:

//用鍊錶來實現對映

type map_list struct

v inte***ce{}

next *map_list

}var list_map *map_list = nil

/** * get獲取對映的值

* */

func (list_map *map_list) get(k inte***ce{}) *map_list

list_map = list_map.next

} return nil

}/**

* add新增(修改)對映

* */

func (list_map *map_list) add(k, v inte***ce{})

} else

}/**

* remove刪除

*/func (list_map *map_list) remove(k inte***ce{}) else

}}

package arr

//利用二分搜尋樹實現map

type map_bst struct

left *map_bst

right *map_bst

}var mapbst *map_bst = nil

/** *add新增操作

*/func (mapbst *map_bst) add(k int, v inte***ce{})

/** * get查詢

*/func (mapbst *map_bst) get(k int) *map_bst

//get方法

func map_get(tree *map_bst, k int) *map_bst

if k < tree.k else if k > tree.k

return tree

}//add 遞迴新增

func map_add(tree *map_bst, k int, v inte***ce{}) *map_bst

return tree

} //遞迴轉化更小問題

其中利用集合和對映的基本邏輯一樣,只要在儲存資料的時候替換即可

package main

import "fmt"

func intersection(nums1 int, nums2 int) (arr int)

}} }

for k, _ := range array

return arr

}func main()

b:=int

fmt.println(intersection(a,b))

}

C STL Map對映和Set集合

map 對映 可以理解為下標可以不為int型別的高階陣列 include mapa 是字串到數字的對映 應用 給英文本串,求星期幾 include include include using namespace std mapday int main set 集合 與數學上的集合意義相同 相同元素記...

雜湊對映和集合練習

給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true示例 2 輸入 s rat t car 輸出 falseclass solution def isanagram self,s str,t str boo...

python學習05 對映和集合型別

字典是 python 語言中唯一的對映型別。對映型別物件裡雜湊值 鍵 和指向的物件 值 是一對多的關係。乙個字典物件是可變的,它是乙個容器型別,能儲存任意個數的 python 物件,其中也包括其他容器型別。字典型別和序列型別容器類 列表 元組 的區別是儲存和訪問資料的方式不同。序列型別只用數字型別的...