逆向棧演算法
1. 鏁版嵁緇撴瀯錛圕璇璦緙栧啓瀹屾暣鍙榪愯岀▼搴忥級錛氳炬湁闃熷垪Q銆佹爤S錛岃捐$畻娉曞埄鐢ㄦ爤S灝嗛槦鍒桻涓鐨勫厓緔犻嗗悜杈撳嚭
鍚屽︿綘濂斤紝榪欐槸鎴戝府浣犲啓鐨勪唬鐮侊紝甯屾湜浣犲╅噰綰籌紱
# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
# define size 6
typedef struct Node
{
int data;
struct Node *pNext;
}NODE, *PNODE;
struct stack
{
PNODE ptop;
};
struct Queue
{
int *pBase;
int front;
int rear;
};
void init_s(stack *);
void init_q(Queue *);
void Enqueue(Queue *, int);
void OutQpushS(Queue *, stack *);
void PopOut(stack *, Queue *);
void Out(Queue *);
int main(void)
{
stack S;//寤虹珛鏍圫
init_s(&S);
Queue Q;//寤虹珛寰鐜闃熷垪Q init_q(&Q);
Enqueue(&Q, 1);
Enqueue(&Q, 2);
Enqueue(&Q, 3);
printf("閫嗙疆鍚庡瑰垪涓鐨勫厓緔犳槸\n");
OutQpushS(&Q, &S);//鍑哄瑰叆鏍
PopOut(&S, &Q);//鍑烘爤騫跺叆闃
Out(&Q);//瀵筈鍑哄
return 0;}
void init_s(stack *pS)
{
pS->ptop = NULL;
}
void init_q(Queue *pQ)
{
pQ->pBase = (int *)malloc(sizeof(int) * size);
if (pQ->pBase == NULL)
{
printf("鍔ㄦ佸唴瀛樺垎閰嶅け璐ワ紒");
exit(-1);
}
pQ->front = pQ->rear = 0;}
void Enqueue(Queue * pQ, int val)
{
pQ->rear = (pQ->rear + 1) % size;
pQ->pBase[pQ->rear] = val;}
void OutQpushS(Queue *pQ, stack *pS)
{
while (pQ->front != pQ->rear)
{
PNODE pNew = (PNODE)malloc(sizeof(NODE));
if (pNew == NULL)
{
printf("鍔ㄦ佸唴瀛樺垎閰嶅け璐ワ紒\n");
exit(-1);
}
pQ->front = (pQ->front + 1) % size;
pNew->data = pQ->pBase[pQ->front];
pNew->pNext = pS->ptop;
pS->ptop = pNew;
}
}
void PopOut(stack *pS, Queue *pQ)
{
while (pS->ptop != NULL)
{
pQ->rear = (pQ->rear + 1) % size;
pQ->pBase[pQ->rear]= pS->ptop->data;
pS->ptop = pS->ptop->pNext;
}
}
void Out(Queue *pQ)
{
while (pQ->front != pQ->rear)
{
pQ->front = (pQ->front + 1) % size;
printf("%d\n", pQ->pBase[pQ->front]);
}
return;}
2. 綆楁硶鍒嗘瀽涓庤捐$殑浣滃搧鐩褰
絎涓閮ㄥ垎銆鍩虹宸ュ叿
絎1絝犮綆楁硶鍒嗘瀽
1.1銆綆楁硶鐨勫垎鏋愭柟娉曞
1.1.1銆浼浠g爜
1.1.2銆闅忔満瀛樺彇鏈(RAM)妯″瀷
1.1.3銆緇熻″熀鏈鎿嶄綔鐨勬暟閲
1.1.4銆閫掑綊綆楁硶鍒嗘瀽
1.2銆娓愯繎絎﹀彿
1.2.1銆澶O絎﹀彿
1.2.2銆涓庡ぇ鈥淥鈥濈浉鍏崇殑娓愯繎絎﹀彿
1.2.3銆娓愯繎琛ㄧず鐨勯噸瑕佹
1.3銆鏁板︽傝
1.3.1銆奼傚拰
1.3.2銆瀵規暟鍜屾寚鏁
1.3.3銆綆鍗曡瘉鏄庢妧鏈
1.3.4銆姒傜巼鍩虹
1.4銆綆楁硶鍒嗘瀽妗堜緥鐮旂┒
1.4.1銆浜屾℃椂闂村墠緙騫沖潎鍊肩畻娉
1.4.2銆綰挎ф椂闂村墠緙騫沖潎鍊肩畻娉
1.5銆騫蟲憡鏂規硶
1.5.1銆騫蟲憡鎶鏈
1.5.2銆鎵╁睍鏁扮粍瀹炵幇鍒嗘瀽
1.6銆瀹為獙
1.6.1銆瀹為獙緇勭粐
1.6.2銆鏁版嵁鍒嗘瀽鍜屽彲瑙嗗寲
1.7銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
1.8銆鏈絝犳敞璁
絎2絝犮鍩烘湰鏁版嵁緇撴瀯
2.1銆鏍堝拰闃熷垪
2.1.1銆鏍
2.1.2銆闃熷垪
2.2銆鍚戦噺銆佽〃鍜屽簭鍒
2.2.1銆鍚戦噺
2.2.2銆琛
2.2.3銆搴忓垪
2.3銆鏍
2.3.1銆鏍戞娊璞℃暟鎹綾誨瀷
2.3.2銆鏍戠殑閬嶅巻
2.3.3銆浜屽弶鏍
2.3.4銆琛ㄧず鏍戠殑鏁版嵁緇撴瀯
2.4銆浼樺厛闃熷垪鍜屽爢
2.4.1銆浼樺厛闃熷垪鎶借薄鏁版嵁綾誨瀷
2.4.2銆PQ鎺掑簭銆侀夋嫨鎺掑簭鍜屾彃鍏ユ帓搴
2.4.3銆鍫嗘暟鎹緇撴瀯
2.4.4銆鍫嗘帓搴
2.5銆瀛楀吀涓庢暎鍒楄〃
2.5.1銆鏃犲簭瀛楀吀ADT
2.5.2銆鏁e垪琛
2.5.3銆鏁e垪鍑芥暟
2.5.4銆鍘嬬緝鏄犲皠
2.5.5銆鍐茬獊澶勭悊妯″紡
2.5.6銆閫氱敤鏁e垪
2.6銆Java紺轟緥錛氬爢
2.7銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
2.8銆鏈絝犳敞璁
絎3絝犮鏌ユ壘鏍戝拰璺寵穬琛
3.1銆鏈夊簭瀛楀吀鍜屼簩鍙夋煡鎵炬爲
3.1.1銆鏈夊簭琛
3.1.2銆浜屽弶鏌ユ壘鏍
3.1.3銆浜屽弶鏌ユ壘鏍戜腑鐨勬煡鎵
3.1.4銆浜屽弶鏌ユ壘鏍戜腑鐨勬彃鍏
3.1.5銆浜屽弶鏌ユ壘鏍戜腑鐨勫垹闄
3.1.6銆浜屽弶鏌ユ壘鏍戠殑鎬ц兘
3.2銆AVL鏍
3.2.1銆鏇存柊鎿嶄綔
3.2.2銆鎬ц兘
3.3銆娣卞害鏈夌晫鏌ユ壘鏍
3.3.1銆澶氳礬鏌ユ壘鏍
3.3.2銆(2,4)鏍
3.3.3銆綰㈤粦鏍
3.4銆浼稿睍鏍
3.4.1銆浼稿睍
3.4.2銆浼稿睍榪囩▼鐨勫鉤鎽婂垎鏋
3.5銆璺寵穬琛
3.5.1銆鏌ユ壘
3.5.2銆鏇存柊鎿嶄綔
3.5.3銆璺寵穬琛ㄧ殑姒傜巼鍒嗘瀽
3.6銆Java紺轟緥錛欰VL鏍戝拰綰㈤粦鏍
3.6.1銆AVL鏍戠殑Java瀹炵幇
3.6.2銆綰㈤粦鏍戠殑Java瀹炵幇
3.7銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
3.8銆鏈絝犳敞璁
絎4絝犮鎺掑簭銆侀泦鍚堝拰閫夋嫨
4.1銆褰掑苟鎺掑簭
4.1.1銆鍒嗘不娉
4.1.2銆褰掑苟鎺掑簭鍜岄掑綊鏂圭▼
4.2銆闆嗗悎鎶借薄鏁版嵁綾誨瀷
4.2.1銆綆鍗曠殑闆嗗悎瀹炵幇
4.2.2銆鍏鋒湁union-find鎿嶄綔鐨勫垝鍒
4.2.3銆鍩轟簬鏍戠殑鍒掑垎瀹炵幇
4.3銆蹇閫熸帓搴
4.4銆鍩轟簬姣旇緝鐨勬帓搴忎笅鐣
4.5銆妗舵帓搴忓拰鍩烘暟鎺掑簭
4.5.1銆妗舵帓搴
4.5.2銆鍩烘暟鎺掑簭
4.6銆姣旇緝鎺掑簭綆楁硶
4.7銆閫夋嫨
4.7.1銆鍓鏋-鏌ユ壘娉
4.7.2銆闅忔満鍖栧揩閫熼夋嫨
4.7.3銆闅忔満鍖栧揩閫熼夋嫨鍒嗘瀽
4.8銆Java紺轟緥錛氬師浣嶅揩閫熸帓搴
4.9銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
4.10銆鏈絝犳敞璁
絎5絝犮鍩烘湰鎶鏈
5.1銆璐蹇冩硶
5.1.1銆鑳屽寘闂棰
5.1.2銆浠誨姟璋冨害
5.2銆鍒嗘不娉
5.2.1銆鍒嗘不閫掑綊鏂圭▼
5.2.2銆鏁存暟鐩鎬箻
5.2.3銆鐭╅樀鐩鎬箻
5.3銆鍔ㄦ佽勫垝
5.3.1銆鐭╅樀閾句箻
5.3.2銆涓鑸鎶鏈
5.3.3銆0-1鑳屽寘闂棰
5.4銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
5.5銆鏈絝犳敞璁
絎浜岄儴鍒嗐鍥劇畻娉
絎6絝犮鍥
6.1銆鍥炬娊璞℃暟鎹綾誨瀷
6.2銆鍥劇殑鏁版嵁緇撴瀯
6.2.1銆杈硅〃緇撴瀯
6.2.2銆閭繪帴琛ㄧ粨鏋
6.2.3銆閭繪帴鐭╅樀緇撴瀯
6.3銆鍥劇殑閬嶅巻
6.3.1銆娣卞害浼樺厛鏌ユ壘
6.3.2銆鍙岃繛閫氬垎閲
6.3.3銆騫垮害浼樺厛鏌ユ壘
6.4銆鏈夊悜鍥
6.4.1銆閬嶅巻鏈夊悜鍥
6.4.2銆浼犻掗棴鍖
6.4.3銆DFS鍜屽瀮鍦炬敹闆
6.4.4銆鏈夊悜鏃犵幆鍥
6.5銆Java紺轟緥錛氭繁搴︿紭鍏堟煡鎵
6.5.1銆淇楗版ā寮
6.5.2銆DFS寮曟搸
6.5.3銆妯℃澘鏂規硶璁捐℃ā寮
6.6銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
6.7銆鏈絝犳敞璁
絎7絝犮鍔犳潈鍥
7.1銆鍗曟簮鐐規渶鐭璺寰
7.1.1銆Dijkstra綆楁硶
7.1.2銆Bellman-Ford鏈鐭璺寰勭畻娉
7.1.3銆鏈夊悜鏃犵幆鍥句腑鐨勬渶鐭璺寰
7.2銆鎵鏈夐《鐐瑰逛箣闂寸殑鏈鐭璺寰
7.2.1銆鍔ㄦ佽勫垝鏈鐭璺寰勭畻娉
7.2.2銆鍒╃敤鐭╅樀鐩鎬箻璁$畻鏈鐭璺寰
7.3銆鏈灝忕敓鎴愭爲
7.3.1銆Kruskal綆楁硶
7.3.2銆Prim-Jarn鉚k綆楁硶
7.3.3銆Bar?vka綆楁硶
7.3.4銆MST綆楁硶姣旇緝
7.4銆Java紺轟緥錛欴ijkstra綆楁硶
7.5銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
7.6銆鏈絝犳敞璁
絎8絝犮緗戠粶嫻佸拰鍖歸厤
8.1銆嫻佸拰鍓
8.1.1銆嫻佺綉緇
8.1.2銆鍓
8.2銆鏈澶ф祦
8.2.1銆鍓╀綑瀹歸噺鍜屽炲ぇ璺寰
8.2.2銆Ford-Fulkerson綆楁硶
8.2.3銆Ford-Fulkerson綆楁硶鍒嗘瀽
8.2.4銆Edmonds-Karp綆楁硶
8.3銆鏈澶т簩鍒嗗尮閰
8.4銆鏈灝忎唬浠鋒祦
8.4.1銆澧炲ぇ鍥炶礬
8.4.2銆榪炵畫鏈鐭璺寰
8.4.3銆淇鏀規潈鍊
8.5銆Java紺轟緥錛氭渶灝忎唬浠鋒祦
8.6銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
8.7銆鏈絝犳敞璁
絎涓夐儴鍒嗐鍥犵壒緗戠畻娉
絎9絝犮鏂囨湰澶勭悊
9.1銆涓插拰妯″紡鍖歸厤綆楁硶
9.1.1銆涓叉搷浣
9.1.2銆錏鍔涙ā寮忓尮閰
9.1.3銆Boyer-Moore綆楁硶
9.1.4銆Knuth-Morris-Pratt綆楁硶
9.2銆trie
9.2.1銆鏍囧噯trie
9.2.2銆鍘嬬緝trie
9.2.3銆鍚庣紑trie
9.2.4銆鎼滅儲寮曟搸
9.3銆鏂囨湰鍘嬬緝
9.3.1銆璧澶鏇肩紪鐮佺畻娉
9.3.2銆淇姝h椽蹇冩硶
9.4銆鏂囨湰鐩鎬技鎬ф祴璇
9.4.1銆鏈闀垮叕鍏卞瓙搴忓垪闂棰
9.4.2銆搴旂敤鍔ㄦ佽勫垝奼傝ВLCS闂棰
9.5銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
9.6銆鏈絝犳敞璁
絎10絝犮鏁拌哄拰瀵嗙爜瀛
10.1銆涓庢暟鏈夊叧鐨勫熀鏈綆楁硶
10.1.1銆鍩烘湰鏁拌虹殑涓浜涗簨瀹
10.1.2銆嬈у嚑閲屽緱GCD綆楁硶
10.1.3銆妯¤繍綆
10.1.4銆妯℃寚鏁拌繍綆
10.1.5銆妯′箻娉曢嗗厓
10.1.6銆緔犳ф祴璇
10.2銆瀵嗙爜璁$畻
10.2.1銆瀵圭О鍔犲瘑妯″紡
10.2.2銆鍏閽ュ瘑鐮佺郴緇
10.2.3銆RSA瀵嗙爜緋葷粺
10.2.4銆El Gamal瀵嗙爜緋葷粺
10.3銆淇℃伅瀹夊叏綆楁硶鍜屽崗璁
10.3.1銆鍗曞悜鏁e垪鍑芥暟
10.3.2銆鏃墮棿鎴沖拰璁よ瘉瀛楀吀
10.3.3銆紜甯佹姏鎺峰拰姣旂壒鎵胯
10.3.4銆瀹夊叏鐢靛瓙浼犺緭(SET)鍗忚
10.3.5銆瀵嗛掗鍒嗗彂鍜屼氦鎹
10.4銆蹇閫熷倕閲屽彾鍙樻崲
10.4.1銆鏈鍘熷崟浣嶆牴
10.4.2銆紱繪暎鍌呴噷鍙跺彉鎹
10.4.3銆蹇閫熷倕閲屽彾鍙樻崲綆楁硶
10.4.4銆澶ф暣鏁扮浉涔
10.5銆Java紺轟緥錛欶FT
10.6銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
10.7銆鏈絝犳敞璁
絎11絝犮緗戠粶綆楁硶
11.1銆澶嶆潅鎬ф祴搴﹀拰妯″瀷
11.1.1銆緗戠粶鍗忚鏍
11.1.2銆娑堟伅浼犻掓ā鍨
11.1.3銆緗戠粶綆楁硶鐨勫嶆潅鎬ф祴搴
11.2銆鍩烘湰鍒嗗竷寮忕畻娉
11.2.1銆鐜緗戜笂鐨勯嗗間漢閫変婦
11.2.2銆鏍戠綉涓婄殑棰嗗間漢閫変婦
11.2.3銆騫垮害浼樺厛鏌ユ壘
11.2.4銆鏈灝忕敓鎴愭爲
11.3銆騫挎挱璺鐢卞拰鍗曟挱璺鐢
11.3.1銆騫挎挱璺鐢辯殑媧娉涚畻娉
11.3.2銆鍗曟挱璺鐢辯殑璺濈葷煝閲忕畻娉
11.3.3銆鍗曟挱璺鐢辯殑閾捐礬-鐘舵佺畻娉
11.4銆澶氭挱璺鐢
11.4.1銆閫嗗悜璺寰勮漿鍙
11.4.2銆涓蹇冩爲
11.4.3銆Steiner鏍
11.5銆涔犻
鍩虹棰
鍒涙柊棰
紼嬪簭璁捐
11.6銆鏈絝犳敞璁
絎鍥涢儴鍒嗐鍏朵粬涓婚
絎12絝犮璁$畻鍑犱綍
12.1銆鑼冨洿鏍
12.1.1銆涓緇磋寖鍥存煡鎵
12.1.2銆浜岀淮鑼冨洿鏌ユ壘
12.2銆浼樺厛鏌ユ壘鏍
..
3. 大公司筆試面試有哪些經典演算法題目
大公司的筆試面試一般是針對你所面試的崗位進行一些專業知識的考核,不會出現想考公員裡面的行測似得,當然也有哪些逆向思維的計算題。