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)
8 while(isdigit(*p))
12 if(!p) return m*l;
13 else return error;
14}
6
、判斷乙個鍊錶是否有迴圈。
1 int isloop(list l)
7 if ( ! s) return - 1 ;
8 else reutrn 1 ;
9 }
-----------
1int isloop(list l)
8 if(p=l) return 1;
9 return 0;
10}
實際上,在我的面試過程中,還問到了不破壞結構的其他演算法。
我的答案是從煉表頭開始遍歷,如果節點
next
指標指向自身,則迴圈存在;否則將
next
指標指向自身,遍歷下乙個節點。直至
next
指標為空,此時鍊錶無迴圈。
7
、反轉乙個字串。
1 void reverse( char * str)
10 }
8
、實現strstr
函式。
1int strstr(char str, char par)else
12 }
13 if(!str[j]) return i-strlen(par);
14 else return -1;
15}
9
、實現strcmp
函式。
1int strcmp(char* str1, char* str2)
6 return *str1-*str2;
7}
10
、求乙個整形中
1的位數。
1 int f( int x)
7 return n;
8 }
11、漢諾塔問題。
1void tower(n,x,y,z)
8}
12
、三柱漢諾塔最小步數。
1 int f3(n)
8 f3[n] = 2 * f3(n - 1 ) + 1 ;
9 return f3[n];
10 }
11 }
四柱漢諾塔最小步數。
1int f4(n)
7 min=2*f4(1)+f3(n-1);
8 for(int i=2;i13
、在乙個鍊錶中刪除另乙個鍊錶中的元素。
1void delete(list m, list n) else if(a.value > b.value)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 }
微軟等公司資料結構面試題1
tree.h typedef struct bstreenode bsttreenode class acttree tree.cpp include tree.h include include acttree acttree void acttree insertvalue else if pn...
資料結構 面試題
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...
資料結構 面試題
2.棧2.2使用棧計算字尾表示式 2.3對棧的元素進行排序 2.4判斷表示式是否括號平衡 3.佇列 4.鍊錶 5.樹6.圖 7.字典樹 這是一種高效的樹形結構,但值得單獨說明 8.雜湊表 雜湊表 1.1 尋找陣列中第二小的元素 思路 公升序排序之後,輸出第二個數字 1.2 找到陣列中第乙個不重複出現...