当前位置:首页 » 操作系统 » 逆向栈算法

逆向栈算法

发布时间: 2024-06-29 03:41:34

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. 大公司笔试面试有哪些经典算法题目

大公司的笔试面试一般是针对你所面试的岗位进行一些专业知识的考核,不会出现想考公员里面的行测似得,当然也有哪些逆向思维的计算题。

热点内容
qq为什么密码修改好了就进不去 发布:2024-11-26 11:37:05 浏览:382
电容为啥耐压越大存储量越小 发布:2024-11-26 11:31:52 浏览:189
天然气车载储气瓶泄露处置脚本 发布:2024-11-26 11:17:36 浏览:254
换ip的服务器 发布:2024-11-26 11:17:29 浏览:75
容器平台怎么看配置 发布:2024-11-26 11:06:09 浏览:940
qq的xml源码 发布:2024-11-26 11:04:05 浏览:704
ip设计缓存设置 发布:2024-11-26 10:56:49 浏览:107
c语言k值 发布:2024-11-26 10:48:53 浏览:870
Java霸王大陆 发布:2024-11-26 10:44:52 浏览:704
乐高机器人怎么编程 发布:2024-11-26 10:36:12 浏览:374