c 面試題(資料結構篇)

2021-08-15 10:37:27 字數 712 閱讀 5330

二叉搜尋樹:乙個節點最多隻允許兩個子節點,任何節點的鍵值一定大於其左子樹中的每個節點的鍵值,並小於其右子樹中每個結點的鍵值。從左可以搜尋到最小元素,從右可以搜尋到最大元素。

紅黑樹:是乙個平衡二叉查詢樹,只不過在每個結點上增加了結點的顏色標誌,它能確保沒有一條路徑會比其它路徑長出兩倍。主要用來儲存有序的資料,如stl中的set,map,效率非常高。

hashtable:雜湊表就是一種根據鍵值來訪問到值value的資料結構,它的核心思想在於雜湊函式的實現上,按照關鍵字為每個元素分類,這些分類組成很多個桶,但是不能保證每個元素的關鍵字與函式值都是一一對應的,一般利用開鏈法解決位址衝突。

模板引數:value,key,hashfun,extractkey(從節點取出鍵值的方法)。

雜湊表的衝突解決方式,雜湊表在桶固定的情況下,時間複雜度,怎麼優化,

多執行緒中雜湊表保證執行緒安全,雜湊表特別大,桶多的時候怎麼加鎖

hash_map:是利用hash函式,對key進行對映到不同區域(桶)進行儲存。

插入過程:用key值通過hash函式得到hash值,然後得到桶號(一般都為hash值對桶數求模),存放key和value在桶內。

取值過程:用key值通過hash函式得到hash值,然後得到桶號,比較桶的內部元素是否與key值相等,取出相等值的value.

C 面試題 資料結構

在面試中,發現有些題目類似,就記下來。便於下次面試的時候出現。持續更新 幸福就是當你照鏡子的時候,喜歡你看到的那個人,加油!翻轉乙個單向鍊錶 class listnode listnode listnode 順序插入結點,只需遍歷結點,找到尾結點 void listnode createlist i...

C 資料結構面試題

題1 鍊錶和陣列有什麼區別 鍊錶和指標有以下幾點不同 1 儲存形式 陣列是一塊連續的空間,宣告時就要確定長度。鍊錶是一塊可不連續的動態空間,長度可變,每個節點要儲存相鄰節點指標。2 資料查詢 陣列的線性查詢速度快,查詢操作直接使用偏移位址。鍊錶需要按順序檢索節點,效率低。3 資料插入和刪除 鍊錶可以...

資料結構 面試題

python實現 寫個大概,import re def quick sort alist,first,last if first last return mid value alist first low first high last while low high while low mid va...