資料結構微軟面試題

2021-05-11 13:42:44 字數 1622 閱讀 9362

1、反轉乙個鍊錶。迴圈演算法。

1 list reverse(list l)

13 return tmp;

14 }

2、反轉乙個鍊錶。遞迴演算法。

1 list resverse(list l)

8 return n;

9 }3、廣度優先遍歷二叉樹。

1 void bst(tree t)

11 }

1class node

5class queue else

17 }

18 public tree deque() else

26}4、輸出乙個字串所有排列。注意有重複字元。

1char p;

2void perm(char s, int i, int n)else

16 }

17 m=head.next;

18}14、乙個陣列,下標從0到n,元素為從0到n的整數。判斷其中是否有重複元素。

1int hasduplicate(int a, int n)

8}17、兩個鍊錶,一公升一降。合併為乙個公升序鍊錶。

1 list merge(list a, list d) else

12 p = p.next;

13 }

14 if (a) p.next = a;

15 elseif(a1) p.next = a1;

16 return q.next;

17 }

18、將長型轉換為字串。

1char* ltoa(long l)

5 char* str=(char*)malloc(n*sizeof(char));

6 int j=0;

7 while(l)

12 return str;

13}19、用乙個資料結構實現

1 if (x == 0) y = a;

2 else y = b;

1 j = ;

2 y=j[x];

20、在雙向鍊錶中刪除指定元素。

1void del(list head, list node)

9 if(!cur) return;

10 list post = cur.next;

11 pre.next=cur.next;

12 post.last=cur.last;

13 return;

14}21、不重複地輸出公升序陣列中的元素。

1 void outputunique( char str, int n)

12 ++ j;

13 }

14 }

15 }

22、面試過程中我還遇到了下面幾題:

1、如何刪除鍊錶的倒數第m的元素?我的方法是先用pre指標從煉表頭開始步進m,新建pst節點next指標指向頭節點,cur指標指向頭節點,然後pre,cur,post三個指標一起步進,當pre指向鍊錶結尾的時候cur指向倒數第m個元素,最後利用pst指標刪除cur指向元素。

2、如何判斷乙個字串是對稱的?如a,aa,aba。設定頭尾指標同時向中間比較靠齊直至相遇。

3、如何利用2函式找出乙個字串中的所有對稱子串?以子串頭指標和尾指標為迴圈變數設定兩個巢狀的迴圈以找出所有子串,對每個子串應用2函式。

微軟面試題 資料結構

分析下面的程式,寫出結果。void main printf x 本來這個程式的 不是很長,而且題意也很清楚,先把元素壓棧,然後再出棧即可得到結果 stack 剛開始分析到pop s,x 時,不明白怎麼會從棧中彈出x,按照棧 先進後出 的原則怎麼都不可能把元素x彈出棧,在百思其解不可得時候,終於發現其...

資料結構演算法面試題

微軟的22道資料結構演算法面試題 含答案 1 反轉乙個鍊錶。迴圈演算法。1 list reverse list l 13 return tmp 14 2 反轉乙個鍊錶。遞迴演算法。1 list resverse list l 8 return n 9 3 廣度優先遍歷二叉樹。1 void bst t...

資料結構 演算法面試題

資料結構 演算法面試100題 摘自csdn,作者july 高天的日誌 1.把二元查詢樹轉變成排序的雙向鍊錶 樹 題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 1...