diff --git a/Code/head.h b/Code/head.h index d290b76..721224c 100644 --- a/Code/head.h +++ b/Code/head.h @@ -1,4 +1,4 @@ // 初始化最大长度 #define MAXSIZE 25 #define DEFAULTELEM 0 -typedef int element_type; +typedef char element_type; diff --git a/Code/sequence_stack.h b/Code/sequence_stack.h index 7a997e3..f28ed90 100644 --- a/Code/sequence_stack.h +++ b/Code/sequence_stack.h @@ -64,4 +64,36 @@ int GetSequenceStackTop(SequenceStack* stack, element_type* elem) { // 弹出后再出栈 *elem = stack->data[stack->top]; return 0; +} + +// 顺序栈实现括号匹配 +int BracketCheck(char str[], int length) { + SequenceStack s; + // 初始化栈 + InitSequenceStack(&s); + for (int i = 0; i < length; i++) { + // 扫描到左括号 + if (str[i] == '{' || str[i] == '[' || str[i] == '(') { + PushSequenceStack(&s, str[i]); + } + else { + // 如果栈空 + if (IsSequenceStackEmpty(s)==1) { + return 1; + } + } + // 定义一个栈顶元素变量 + char t; + PopSequenceStack(&s, &t); + if (str[i] == ')' && t != '(') { + return 1; + } + if (str[i] == ']' && t != '[') { + return 1; + } + if (str[i] == '}' && t != '{') { + return 1; + } + } + return 0; } \ No newline at end of file diff --git a/Data-Structrue/array.md b/Data-Structrue/array.md new file mode 100644 index 0000000..6cdc4c1 --- /dev/null +++ b/Data-Structrue/array.md @@ -0,0 +1,24 @@ +# 鏁扮粍 + +## 鏁扮粍鐨勫瓨鍌ㄧ粨鏋 + +### 涓缁存暟缁 + +鍚勬暟缁勫厓绱犲ぇ灏忕浉鍚岋紝涓旂墿鐞嗕笂杩炵画瀛樻斁銆 + +鏁扮粍鍏冪礌a[i]鐨勫瓨鏀惧湴鍧=璧峰鍦板潃LOC+i*sizeof(ElemType)銆傛暟缁勪笅鏍囦粠0寮濮嬨 + +### 浜岀淮鏁扮粍 + +浜岀淮鏁扮粍瀛樺偍鏂瑰紡杩樻槸鍚屼竴缁存暟缁勪竴鏍疯繛缁殑銆 + ++ 琛屼紭鍏堬細涓琛屼竴琛屽瓨鍌ㄣ ++ 鍒椾紭鍏堬細涓鍒椾竴鍒楀瓨鍌ㄣ + +宸茬煡浜岀淮鏁扮粍b[M][N]銆 + +鑻ユ寜琛屽瓨鍌紝b[i][j]鐨勫瓨鍌ㄥ湴鍧=璧峰鍦板潃LOC+(i\*N+j)*sizeof(ElemType)銆 + +### 鍗佸瓧閾捐〃娉 + +姣忎釜缁撶偣涓寘鍚鏁般佸垪鏁般佸厓绱犲硷紝浠ュ強涓や釜鎸囬拡锛屽悜涓嬪煙鎸囬拡down鎸囧悜鍚岀j鍒楃殑涓嬩竴涓釜鍏冪礌锛屽悜鍙冲煙鎸囬拡right鎸囧悜鍚岀i琛岀殑涓嬩竴涓厓绱犮 diff --git a/Data-Structrue/queue.md b/Data-Structrue/queue.md index 55684a1..ef1d7cc 100644 --- a/Data-Structrue/queue.md +++ b/Data-Structrue/queue.md @@ -30,3 +30,16 @@ ## 閾鹃槦 +## 鍙岀闃熷垪 + +鍙岀闃熷垪锛氬彧鍏佽浠庝袱绔彃鍏ャ佷袱绔垹闄ょ殑绾挎ц〃銆 + +杈撳叆鍙楅檺鐨勫弻绔槦鍒楋細鍙厑璁镐粠涓绔彃鍏ワ紝涓ょ鍒犻櫎鐨勭嚎鎬ц〃銆 + +杈撳叆鍙楅檺鐨勫弻绔槦鍒楋細鍙厑璁镐粠涓绔垹闄わ紝涓ょ鎻掑叆鐨勭嚎鎬ц〃銆 + +## 闃熷垪搴旂敤 + ++ 鏍戠殑灞傛閬嶅巻銆 ++ 鍥剧殑骞垮害浼樺厛閬嶅巻銆 ++ 杩涚▼浜夌敤FCFS绛栫暐銆 diff --git a/Data-Structrue/stack.md b/Data-Structrue/stack.md index 2facea1..a8749a4 100644 --- a/Data-Structrue/stack.md +++ b/Data-Structrue/stack.md @@ -24,21 +24,90 @@ ## 鏍堢殑搴旂敤 -1. 鏁板埗杞崲锛 - + 鎬濇兂锛氬厛姹傚嚭鏉ョ殑浣欐暟鏀惧湪鍚庤竟銆 - + 濡43锛10锛 = 101011锛2锛夈 -2. 鎷彿鍖归厤锛 - + 鎬濇兂锛氳嚜宸﹁嚦鍙虫壂鎻忚〃杈惧紡锛岃嫢閬囧乏鎷彿锛屽垯灏嗗乏鎷彿鍏ユ爤锛岃嫢閬囧彸鎷彿锛屽垯灏嗗叾涓庢爤椤剁殑宸︽嫭鍙疯繘琛屽尮閰嶏紝鑻ラ厤瀵癸紝鍒欐爤椤剁殑宸︽嫭鍙峰嚭鏍堬紝鍚﹀垯鍑虹幇鎷彿涓嶅尮閰嶉敊璇 -3. 琛ㄨ揪寮忔眰鍊硷紙涓紑琛ㄨ揪寮忔眰鍊硷級锛 - + 鎬濇兂锛氫紭鍏堢骇鏈浣庛 - + 渚嬪锛4+2脳3-10/5锛屾寜鐓ц繍绠楁硶鍒欙紝鎴戜滑搴斿綋鍏堢畻2脳3鐒跺悗绠10/5 锛屽啀绠楀姞娉曪紝鏈鍚庣畻鍑忔硶銆 - + 鎴戜滑璁惧畾涓や釜鏍堬紝涓涓敤浜庡瓨鍌ㄨ繍绠楃绉颁箣涓鸿繍绠楃鏍堬紝鍙︿竴涓敤浜庡瓨鍌ㄦ搷浣滄暟绉颁箣涓烘搷浣滄暟鏍堛 - 1. 棣栧厛缃搷浣滄暟鏍堜负绌猴紝琛ㄨ揪寮忚捣濮嬬鈥#鈥濅负杩愮畻绗︽爤鐨勬爤浣庡厓绱犮 - 2. 渚濇璇诲叆琛ㄨ揪寮忎腑姣忎釜瀛楃锛岃嫢鏄搷浣滄暟鍒欒繘鎿嶄綔鏁版爤锛岃嫢鏄繍绠楃鍒欏拰杩愮畻绗︽爤鏍堥《鍏冪礌姣旇緝浼樺厛绾э紝鑻ユ爤椤跺厓绱犱紭鍏堢骇楂樹簬鍗冲皢鍏ユ爤鐨勫厓绱狅紝鍒欐爤椤跺厓绱犲嚭鏍堬紙浼樺厛绾ч珮鐨勫厛鍑烘爤锛屽啀鎶婁紭鍏堢骇浣庣殑鏀捐繘鏉ワ級锛屾搷浣滄暟鏍坧op鍑轰袱涓搷浣滄暟鍜岃繍绠楃涓璧疯繘琛岃繍绠楋紝灏嗚繍绠楀悗鐨勭粨鏋滄斁鍏ユ搷浣滄暟鏍堬紝鐩磋嚦鏁翠釜琛ㄨ揪寮忔眰鍊煎畬姣曪紙鍗宠繍绠楃鏍堥《鍏冪礌鍜岃鏀惧叆鍏冪礌鍧囦负鈥#鈥濓級 -4. 杩峰闂锛 - + 鎬濇兂锛氫互鏍圫璁板綍褰撳墠璺緞锛屽垯鏍堥《涓瓨鏀剧殑鏄滃綋鍓嶈矾寰勪笂鏈鍚庝竴涓綅缃俊鎭濄 - + 鑻ュ綋鍓嶄綅缃滃彲閫氣濓紝鍒欑撼鍏ヨ矾寰勶紙鍏ユ爤锛夛紝缁х画鍓嶈繘銆 - + 鑻ュ綋鍓嶄綅缃滀笉鍙氣濓紝鍒欏悗閫锛堝嚭鏍堬級锛屾崲鏂瑰悜缁х画鎺㈢储銆 - + 鑻ュ洓鍛ㄢ滃潎鏃犻氳矾鈥濓紝鍒欏皢褰撳墠浣嶇疆浠庤矾寰勪腑鍒犻櫎鍑哄幓銆 -5. 閫掑綊璋冪敤 -6. 绋嬪簭杩愯鏃剁殑鍑芥暟璋冪敤銆 +### 鎷彿鍖归厤 + +鍗抽渶瑕佹嫭鍙锋垚鍙岀浉瀵癸紝涓斿ぇ灏忎竴鏍枫 + +鎷彿鍖归厤鏃朵細鍙戠幇鏈鍚庡嚭鐜扮殑宸︽嫭鍙锋渶鍏堣鍖归厤LIFO銆傛墍浠ュ氨鍙互閫氳繃鏍堟潵妯℃嫙杩欎釜鍖归厤杩囩▼銆 + +鑷乏鑷冲彸鎵弿琛ㄨ揪寮忥紝鑻ラ亣宸︽嫭鍙凤紝鍒欏皢宸︽嫭鍙峰叆鏍堬紝鑻ラ亣鍙虫嫭鍙凤紝鍒欏皢鍏朵笌鏍堥《鐨勫乏鎷彿杩涜鍖归厤锛岃嫢閰嶅锛屽垯鏍堥《鐨勫乏鎷彿鍑烘爤锛屽惁鍒欏嚭鐜版嫭鍙蜂笉鍖归厤閿欒锛屽鏋滈渶瑕佸尮閰嶄絾鏄爤绌鸿鏄庢湁鍗曠嫭鐨勫乏鎴栧彸鎷彿锛屼篃鍖归厤澶辫触銆 + +### 琛ㄨ揪寮忔眰鍊 + +涓鑸娇鐢ㄧ殑閮芥槸涓紑琛ㄨ揪寮忥紝渚嬪锛4+2脳3-10/5锛屾寜鐓ц繍绠楁硶鍒欙紝鎴戜滑搴斿綋鍏堢畻2脳3鐒跺悗绠10/5 锛屽啀绠楀姞娉曪紝鏈鍚庣畻鍑忔硶銆 + +琛ㄨ揪寮忓垎涓轰笁涓儴鍒嗭細鎿嶄綔鏁般佽繍绠楃銆佺晫闄愮銆 + +濡傛灉涓嶄娇鐢ㄧ晫闄愮锛屽涓嫭鍙锋垨灏忔嫭鍙凤紝鍙互浣跨敤鍚庣紑琛ㄨ揪寮忥紙閫嗘尝鍏拌〃杈惧紡锛夋垨鍓嶇紑琛ㄨ揪寮忥紙娉㈠叞琛ㄨ揪寮忥級銆 + +甯哥敤鐨勪腑缂琛ㄨ揪寮忔槸灏嗚繍绠楃濡傚姞鍑忎箻闄ゆ斁鍦ㄤ袱涓搷浣滄暟涓棿锛岃屽悗缂琛ㄨ揪寮忓氨鏄斁鍦ㄤ袱涓搷浣滄暟涔嬪悗锛屽墠缂琛ㄨ揪寮忓氨鏄斁鍦ㄤ袱涓搷浣滄暟涔嬪墠銆 + +#### 鍚庣紑琛ㄨ揪寮 + +涓紑杞悗缂鐨勬墜绠楁柟娉曪細 + +1. 纭畾涓紑琛ㄨ揪寮忎腑鍚勪釜杩愮畻绗︾殑杩愮畻椤哄簭杩涜鎺掑簭銆 +2. 閫夋嫨涓嬩竴涓繍绠楃锛屾寜鐓**宸︽搷浣滄暟 鍙虫搷浣滄暟 杩愮畻绗**鐨勬柟寮忕粍鍚堜竴涓釜鏂扮殑鎿嶄綔鏁般 +3. 濡傛灉杩樻湁杩愮畻绗︽病鏈夊鐞嗗氨閲嶅2姝ラ銆 + +濡侫+B*(C-D)-E/F灏辨槸ABCD-*+EF/-鍜孉BCD-\*EF/-+銆備腑缂杞悗缂鐨勭粨鏋滃彲浠ユ湁涓嶅悓鐨勭粨鏋溿 + +鍗充娇鏈変笉鍚岀殑杞崲缁撴灉锛屼絾鏄鏋滄垜浠閫氳繃璁$畻鏈哄疄鐜拌繖绉嶈浆鎹㈢畻娉曪紝灏卞繀椤讳繚璇佺畻娉曠殑鍞竴鎬э紝鎵浠ヨ瀹氬悗缂琛ㄨ揪寮忎腑杩愮畻绗︾殑椤哄簭灏辨槸涓紑琛ㄨ揪寮忎腑杩愮畻绗︾敓鏁堢殑椤哄簭锛屽嵆缁撴灉鏄涓涓屼笉鏄浜屼釜銆 + +鎵浠ュ悗缂琛ㄨ揪寮忚浆鎹㈠繀椤婚伒寰乏浼樺厛鐨勫師鍒欙紝鑳藉厛璁$畻宸﹁竟鐨勮繍绠楃灏辫绠楀乏杈圭殑杩愮畻绗︺ + +鍚庣紑琛ㄨ揪寮忚浆鎹㈢殑绋嬪簭瀹炵幇锛 + +1. 鍒濆鍖栦竴涓爤锛岀敤浜庝繚瀛樻殏鏃朵笉鑳界‘瀹氳繍绠楅『搴忕殑杩愮畻绗︺ +2. 浠庡乏鍒板彸澶勭悊姣忎釜鍏冪礌銆 +3. 濡傛灉閬囧埌鎿嶄綔鏁帮紝鐩存帴鍔犲叆鍚庣紑琛ㄨ揪寮忋 +4. 濡傛灉閬囧埌鐣岄檺绗︼紝濡傛灉閬囧埌宸︽嫭鍙风洿鎺ュ叆鏍堬紝濡傛灉閬囧埌鍙虫嫭鍙蜂緷娆″脊鍑烘爤鍐呰繍绠楃骞跺姞鍏ュ埌鍚庣紑琛ㄨ揪寮忎腑锛岀洿鍒伴亣鍒版柊鐨勫乏鎷彿涓烘锛屼笉寮瑰嚭宸︽嫭鍙枫 +5. 閬囧埌杩愮畻绗︼紝渚濇寮瑰嚭鏍堜腑浼樺厛绾ч珮浜庢垨绛変簬褰撳墠杩愮畻绗︾殑鎵鏈夎繍绠楃骞跺姞鍏ュ悗缂琛ㄨ揪寮忥紝鑻ョ鍒板乏鎷彿鎴栨爤绌哄仠姝紝涔嬪悗鍐嶅皢褰撳墠杩愮畻绗﹀叆鏍堛 +6. 澶勭悊瀹屾墍鏈夊瓧绗﹀悗锛屽皢鏍堜腑鍓╀綑杩愮畻绗︿緷娆″脊鍑猴紝骞跺姞鍏ュ悗缂杩愮畻绗︺ + +鍚庣紑琛ㄨ揪寮忚绠楃殑绋嬪簭瀹炵幇锛 + +1. 浠庡乏寰鍙虫壂鎻忎笅涓涓厓绱狅紝鐩村埌澶勭悊鎵鏈夊厓绱犮 +2. 鑻ユ壂鎻忓埌鎿嶄綔鏁板垯鍘嬪叆鏍堬紝骞跺洖鍒1锛岃嫢鎵弿鍒拌繍绠楃鍒欐墽琛3. +3. 鎵弿鍒拌繍绠楃鍒欏脊鍑轰袱涓爤椤跺厓绱狅紝鎵ц鐩稿簲鎿嶄綔锛岃繍绠楃粨鏋滃帇鍏ユ爤锛屽洖鍒版楠1銆 +4. 鍏堝嚭鏍堢殑鏄彸鎿嶄綔鏁帮紝鍚庡嚭鏍堢殑鏄乏鎿嶄綔鏁般 + +浣跨敤鏍堣繘琛屼腑缂琛ㄨ揪寮忔眰鍊肩殑绋嬪簭瀹炵幇锛 + +1. 鎴戜滑璁惧畾涓や釜鏍堬紝涓涓敤浜庡瓨鍌ㄨ繍绠楃绉颁箣涓鸿繍绠楃鏍堬紝鍙︿竴涓敤浜庡瓨鍌ㄦ搷浣滄暟绉颁箣涓烘搷浣滄暟鏍堛 +2. 棣栧厛缃搷浣滄暟鏍堜负绌猴紝琛ㄨ揪寮忚捣濮嬬鈥#鈥濅负杩愮畻绗︽爤鐨勬爤搴曞厓绱犮 +3. 渚濇璇诲叆琛ㄨ揪寮忎腑姣忎釜瀛楃锛岃嫢鏄搷浣滄暟鍒欒繘鎿嶄綔鏁版爤锛岃嫢鏄繍绠楃鍒欏拰杩愮畻绗︽爤鏍堥《鍏冪礌姣旇緝浼樺厛绾э紝鑻ユ爤椤跺厓绱犱紭鍏堢骇楂樹簬鍗冲皢鍏ユ爤鐨勫厓绱狅紝鍒欐爤椤跺厓绱犲嚭鏍堬紙浼樺厛绾ч珮鐨勫厛鍑烘爤锛屽啀鎶婁紭鍏堢骇浣庣殑鏀捐繘鏉ワ級锛屾搷浣滄暟鏍堝脊鍑轰袱涓搷浣滄暟鍜岃繍绠楃涓璧疯繘琛岃繍绠楋紝灏嗚繍绠楀悗鐨勭粨鏋滄斁鍏ユ搷浣滄暟鏍堬紝鐩磋嚦鏁翠釜琛ㄨ揪寮忔眰鍊煎畬姣曪紙鍗宠繍绠楃鏍堥《鍏冪礌鍜岃鏀惧叆鍏冪礌鍧囦负鈥#鈥濓級銆 + +濡傛灉鎴戜滑灏嗗悗缂琛ㄨ揪寮忚浆鎹负涓紑琛ㄨ揪寮忚绠楋紝鍙互浠庡乏寰鍙虫壂鎻忥紝姣忛亣鍒颁竴涓繍绠楃锛屽氨璁╄繍绠楃鍓嶉潰鏈杩戠殑涓や釜鎿嶄綔鏁版墽琛屽搴旇繍绠楋紝鍚堝苟涓轰竴涓搷浣滄暟銆 + +#### 鍓嶇紑琛ㄨ揪寮 + +涓紑杞悗缂鐨勬墜绠楁柟娉曪細 + +1. 纭畾涓紑琛ㄨ揪寮忎腑鍚勪釜杩愮畻绗︾殑杩愮畻椤哄簭杩涜鎺掑簭銆 +2. 閫夋嫨涓嬩竴涓繍绠楃锛屾寜鐓**杩愮畻绗 宸︽搷浣滄暟 鍙虫搷浣滄暟**鐨勬柟寮忕粍鍚堜竴涓釜鏂扮殑鎿嶄綔鏁般 +3. 濡傛灉杩樻湁杩愮畻绗︽病鏈夊鐞嗗氨閲嶅2姝ラ銆 + +閬靛惊鍙充紭鍏堝師鍒欙紝鍙鑳借绠楀彸杈瑰氨浼樺厛璁$畻鍙宠竟銆 + +鍓嶇紑琛ㄨ揪寮忚绠楃殑绋嬪簭瀹炵幇锛 + +1. 浠庡彸寰宸︽壂鎻忎笅涓涓厓绱狅紝鐩村埌澶勭悊鎵鏈夊厓绱犮 +2. 鑻ユ壂鎻忓埌鎿嶄綔鏁板垯鍘嬪叆鏍堬紝骞跺洖鍒1锛岃嫢鎵弿鍒拌繍绠楃鍒欐墽琛3. +3. 鎵弿鍒拌繍绠楃鍒欏脊鍑轰袱涓爤椤跺厓绱狅紝鎵ц鐩稿簲鎿嶄綔锛岃繍绠楃粨鏋滃帇鍏ユ爤锛屽洖鍒版楠1銆 +4. 鍏堝嚭鏍堢殑鏄乏鎿嶄綔鏁帮紝鍚庡嚭鏍堢殑鏄彸鎿嶄綔鏁般 + +### 閫掑綊 + +鍑芥暟璋冪敤鐨勭壒鐐癸細鏈鍚庤璋冪敤鐨勫嚱鏁版渶鍏堟墽琛岀粨鏉烲IFO銆 + +鍑芥暟璋冪敤鏃堕渶瑕佷竴涓爤瀛樺偍锛氳皟鐢ㄨ繑鍥炲湴鍧銆佸疄鍙傘佸眬閮ㄥ彉閲忋 + +閫掑綊鍙互灏嗗師濮嬮棶棰樻媶鍒嗕负灞炴х浉鍚屻佽妯¤緝灏忕殑闂銆備絾鏄鏋滃お澶氬眰浼氶犳垚鏍堟孩鍑恒 + +### 杩峰闂 + ++ 鎬濇兂锛氫互鏍圫璁板綍褰撳墠璺緞锛屽垯鏍堥《涓瓨鏀剧殑鏄滃綋鍓嶈矾寰勪笂鏈鍚庝竴涓綅缃俊鎭濄 ++ 鑻ュ綋鍓嶄綅缃滃彲閫氣濓紝鍒欑撼鍏ヨ矾寰勶紙鍏ユ爤锛夛紝缁х画鍓嶈繘銆 ++ 鑻ュ綋鍓嶄綅缃滀笉鍙氣濓紝鍒欏悗閫锛堝嚭鏍堬級锛屾崲鏂瑰悜缁х画鎺㈢储銆 ++ 鑻ュ洓鍛ㄢ滃潎鏃犻氳矾鈥濓紝鍒欏皢褰撳墠浣嶇疆浠庤矾寰勪腑鍒犻櫎鍑哄幓銆 diff --git a/Data-Structrue/string.md b/Data-Structrue/string.md new file mode 100644 index 0000000..f39dc51 --- /dev/null +++ b/Data-Structrue/string.md @@ -0,0 +1,7 @@ +# 涓 + ++ 涓诧細闆朵釜鎴栧涓瓧绗︾粍鎴愮殑鏈夐檺搴忓垪銆 ++ 绌轰覆锛氶暱搴︿负闆剁殑涓层 ++ 绌虹櫧涓诧細浠呯敱涓涓垨澶氫釜绌烘牸缁勬垚鐨勪覆銆 ++ 绌轰覆鏄换鎰忎覆鐨勫瓙涓诧紝浠绘剰涓叉槸鍏惰嚜韬殑瀛愪覆銆 +