無敵的資料結構題目

2021-06-03 07:12:41 字數 1012 閱讀 6517

要過年了,給各位苦逼的碼工們奉上乙份厚禮!

如下是國內某知名公司2023年的網路筆試題:

用你能想到的資料結構與演算法,管理乙個物件序列;這個物件序列應支援如下操作:

操作

時間複雜度

insert(key)

o(logn)或更好

remove(item)

o(logn)或更好

get(int index)

o(logn)或更好

獲取某一物件的索引

o(logn)或更好

count()

o(logn)或更好

item.next()取下乙個

平均o(1),最壞o(logn)

item.prev()取上乙個

平均o(1),最壞o(logn)

取到最小物件

o(logn)或更好

取到最大物件

o(logn)或更好

正向遍歷

o(n)

逆向遍歷

o(n)

寫盤o(n)

讀盤o(n)

(試題結束)

題目要求的每一點都很容易實現,但如果要全部實現,就不太容易了。所以,原題的筆試物件是三年以上工作經驗的程式設計師,且不限時間不限地點可以查閱任何資料!!無敵了!!!

出題人的意圖是要維護乙個有序的物件序列,以學生記錄為例(按名字排序):

class student 中c的index是1,但如果再插入b,則c的index就是2

* getindex()

* load(),注意,邊讀邊插的時間複雜度是o(nlogn),而題目要求o(n),就是說你幾乎不能有任何額外開銷,太狠了!

(另據小道訊息,任何乙個操作不允許使用遞迴!!)

好了,拋磚引玉,希望各位看官各顯身手,一起突破這三道難關!

資料結構實驗題目

1 集合的交 並 差運算 容易 問題描述 編制乙個能演示執行集合的交 並和差運算的程式。集合元素用小寫英文本母。基本要求 1 用線性表來儲存集合 2 分別實現交 並和差這三個集合運算 3 輸出結果 2成績統計 中等 問題描述 給出n個學生的m門考試的成績表,每個學生的資訊由學號 姓名以及各科成績組成...

資料結構拓展題目

本題要求實現乙個函式,將給定的單鏈表逆轉。函式介面定義 list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,函式revers...

資料結構題目記錄

有兩個稀疏矩陣a,b,規格分別是m n,n k 現在要求編寫乙個函式,來計算c a b,並且a,b.c矩陣皆由三元組儲存。函式程式段 先將兩個三元組轉換成矩陣,然後計算兩個矩陣的乘積,然後再轉化成三元組 void trimatmultiply int a 3 int b 3 int c 3 int ...