資料結構常見演算法機試題

2021-10-03 23:30:05 字數 2545 閱讀 2403

二. 二叉排序樹

三. 優先佇列

四. 雜湊表

提交**

讀入輸入的字串,建立一顆以指標方式儲存的二叉樹,以#表示空樹。

abc##de#g##f###

#include

#include

using

namespace std;

string s;

struct node};

node*

build

(int

& pos)

//pos不能回溯,需為引用型別

else

return

null;}

void

inorder

(node *p)

intmain()

return0;

}

也就是給定前序中序,來確定後序

提交**

#include

#include

using

namespace std;

struct node};

node*

make

(string pre,string in)

return

null;}

void

pos(node* root)

}int

main()

return0;

}

題目鏈結

#include

using

namespace std;

struct node

//剛開始忘記了初始化為null };

void

insert

(node*

&root,

int v)

else

}void

pre(node* p,

int v,

int father)

//該函式也可以寫到insert裡

pre(p-

>l,v,p-

>value)

;pre

(p->r,v,p-

>value);}

}int

main()

}}

題目鏈結

題很水,只需知道優先佇列應用於求解順序問題,優先順序高的位於佇列最前。

還有乙個要注意的是:過載運算子一定要加const!!而且要寫在括號外面!!否則會像沒定義比較函式一樣報錯,原因可能是因為const型別物件無法在const物件上使用。

#include

#include

#include

using

namespace std;

struct complex

bool

operator

<

(complex o)

const};

intmain()

else

}else}}

}

n個帶有權值的結點構成的哈夫曼樹可能不唯一,所以有關哈夫曼樹的機試題往往考察的是求解最小帶權路徑長度和。使用優先佇列,可以高效的求出集合中權值最小的兩個元素,此時需要的是優先順序最小的元素。

求哈夫曼

權值搬水果

#include

#include

using

namespace std;

intmain()

int res=0;

while

(q.size()

>1)

cout << res << endl;

}}

魔咒詞典

對於雙向對映,當然可以用兩個map分別儲存key和value。

但如果任何key均不會等於value的情況下,可以直接存在乙個map中。即:

mp[key]

= value;

mp[value]

= key;

題目鏈結

只需想到遍歷子串的方法,在雜湊表上加一即可。

for

(int i=

0;ilength()

;i++

)}

誰是你的潛在朋友

#include

#include

using

namespace std;

intmain()

;for

(int i=

0;i) vector<

int>

::iterator it;

for(it=v.

begin()

;it!=v.

end(

);it++)}

}

機試常見的資料結構

北航的機試要求用標準c程式設計,所以很多c 的庫都沒法用。因此我使用最簡單的 實現了幾個常見的資料結構。標準c庫參考 1.陣列實現的棧。此處棧的元素預設為int,也可以改為其他。struct stack void push int x int pop bool isempty bool isfull...

資料結構與演算法常見面試題

資料結構與演算法 找到單鏈表的三等分點,如果單鏈表是有環的呢 用快慢指標,乙個走一步,乙個走三步。如果有環,先判斷環在哪,找最後乙個節點,然後用之前的無環的做法 從10萬個數中找最小的10個,時間複雜度分析 最小堆,考慮記憶體 我們首先取10萬個元素中的前10個元素來建立由10個元素組成的最小堆。這...

演算法常見資料結構

array 陣列最簡單而且應用最廣泛的資料結構之一.特性 使用連續的記憶體來儲存,陣列中的所有元素必須是相同的型別或型別的衍生 同質資料結構 元素可以通過下標直接訪問 linkedlist 鍊錶,線性表的一種,最基本,最簡單,也最為常用的資料結構.特性 元素之間的關係是一對一的關係 除了第乙個和最後...