分析下面的程式,寫出結果。
void main( );
printf(x);
}本來這個程式的**不是很長,而且題意也很清楚,先把元素壓棧,然後再出棧即可得到結果:stack
剛開始分析到pop(s,x);時,不明白怎麼會從棧中彈出x,按照棧「先進後出」的原則怎麼都不可能把元素x彈出棧,......在百思其解不可得時候,終於發現其中的奧秘了:在程式執行到push(s,y);pop(s,x);後x=k,然後入棧t,接著x=t,在入棧s,到此程式執行到push(s,'s');接著用乙個迴圈出棧,得到stac,最後在輸入乙個k,得到最後的結果:
stack
josephus(約瑟夫)問題
有n個人圍成乙個圈,從第1個人開始報數,數到第m個人,讓他出局;然後從出局的下乙個人重新開始報數,數到第m個人,再讓他出局,……,如此反覆直到剩下乙個人,問此人編號為幾?
或:有n個人圍成乙個圈,從第k個人開始報數,數到第m個人,讓他出局;然後從出局的下乙個人重新開始報數,數到第m個人,再讓他出局,……,如此反覆直到所有人出列,由此產生乙個出隊編號的序列。
1、陣列解法
#include
#include
using namespace std;
const int n=11, m=3;
int main()
;int main()
q->next=p; //構成乙個"環"
q=p;
while(q->next!=q)
else
}cout<<"最後乙個獲勝者的編號是:" while(q->next!=q) p->next=q->next; delete q; q=p->next;} 微軟的22道資料結構演算法面試題(含答案) 2010-05-11 16:45 資料結構——表示式求值(堆疊) 2010-05-18 21:29 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 ... 微軟的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...資料結構微軟面試題
資料結構演算法面試題
資料結構 演算法面試題