c语言栈是什么?像这题和栈有什么关系 C语言中的栈和堆是什么?
C\u8bed\u8a00\u4e2d\u7684\u6808\u3001\u5806\u662f\u4ec0\u4e48\uff1fC\u8bed\u8a00\u4e2d\u7684\u5806\u548c\u6808\u90fd\u662f\u4e00\u79cd\u6570\u636e\u9879\u6309\u5e8f\u6392\u5217\u7684\u6570\u636e\u7ed3\u6784\u3002
\u6808\u5c31\u50cf\u88c5\u6570\u636e\u7684\u6876\u6216\u7bb1\u5b50
\u6211\u4eec\u5148\u4ece\u5927\u5bb6\u6bd4\u8f83\u719f\u6089\u7684\u6808\u8bf4\u8d77\u5427\uff0c\u5b83\u662f\u4e00\u79cd\u5177\u6709\u540e\u8fdb\u5148\u51fa\u6027\u8d28\u7684\u6570\u636e\u7ed3\u6784\uff0c\u4e5f\u5c31\u662f\u8bf4\u540e\u5b58\u653e\u7684\u5148\u53d6\uff0c\u5148\u5b58\u653e\u7684\u540e\u53d6\u3002
\u8fd9\u5c31\u5982\u540c\u6211\u4eec\u8981\u53d6\u51fa\u653e\u5728\u7bb1\u5b50\u91cc\u9762\u5e95\u4e0b\u7684\u4e1c\u897f\uff08\u653e\u5165\u7684\u6bd4\u8f83\u65e9\u7684\u7269\u4f53\uff09\uff0c\u6211\u4eec\u9996\u5148\u8981\u79fb\u5f00\u538b\u5728\u5b83\u4e0a\u9762\u7684\u7269\u4f53\uff08\u653e\u5165\u7684\u6bd4\u8f83\u665a\u7684\u7269\u4f53\uff09\u3002
\u5806\u50cf\u4e00\u68f5\u5012\u8fc7\u6765\u7684\u6811
\u800c\u5806\u5c31\u4e0d\u540c\u4e86\uff0c\u5806\u662f\u4e00\u79cd\u7ecf\u8fc7\u6392\u5e8f\u7684\u6811\u5f62\u6570\u636e\u7ed3\u6784\uff0c\u6bcf\u4e2a\u7ed3\u70b9\u90fd\u6709\u4e00\u4e2a\u503c\u3002
\u901a\u5e38\u6211\u4eec\u6240\u8bf4\u7684\u5806\u7684\u6570\u636e\u7ed3\u6784\uff0c\u662f\u6307\u4e8c\u53c9\u5806\u3002\u5806\u7684\u7279\u70b9\u662f\u6839\u7ed3\u70b9\u7684\u503c\u6700\u5c0f\uff08\u6216\u6700\u5927\uff09\uff0c\u4e14\u6839\u7ed3\u70b9\u7684\u4e24\u4e2a\u5b50\u6811\u4e5f\u662f\u4e00\u4e2a\u5806\u3002
\u7531\u4e8e\u5806\u7684\u8fd9\u4e2a\u7279\u6027\uff0c\u5e38\u7528\u6765\u5b9e\u73b0\u4f18\u5148\u961f\u5217\uff0c\u5806\u7684\u5b58\u53d6\u662f\u968f\u610f\uff0c\u8fd9\u5c31\u5982\u540c\u6211\u4eec\u5728\u56fe\u4e66\u9986\u7684\u4e66\u67b6\u4e0a\u53d6\u4e66\u3002
\u867d\u7136\u4e66\u7684\u6446\u653e\u662f\u6709\u987a\u5e8f\u7684\uff0c\u4f46\u662f\u6211\u4eec\u60f3\u53d6\u4efb\u610f\u4e00\u672c\u65f6\u4e0d\u5fc5\u50cf\u6808\u4e00\u6837\uff0c\u5148\u53d6\u51fa\u524d\u9762\u6240\u6709\u7684\u4e66\uff0c\u4e66\u67b6\u8fd9\u79cd\u673a\u5236\u4e0d\u540c\u4e8e\u7bb1\u5b50\uff0c\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u53d6\u51fa\u6211\u4eec\u60f3\u8981\u7684\u4e66\u3002
\u6269\u5c55\u8d44\u6599\uff1a
\u5173\u4e8e\u5806\u548c\u6808\u533a\u522b\u7684\u6bd4\u55bb
\u4f7f\u7528\u6808\u5c31\u8c61\u6211\u4eec\u53bb\u996d\u9986\u91cc\u5403\u996d\uff0c\u53ea\u7ba1\u70b9\u83dc\uff08\u53d1\u51fa\u7533\u8bf7\uff09\u3001\u4ed8\u94b1\u3001\u548c\u5403\uff08\u4f7f\u7528\uff09\uff0c\u5403\u9971\u4e86\u5c31\u8d70\uff0c\u4e0d\u5fc5\u7406\u4f1a\u5207\u83dc\u3001\u6d17\u83dc\u7b49\u51c6\u5907\u5de5\u4f5c\u548c\u6d17\u7897\u3001\u5237\u9505\u7b49\u626b\u5c3e\u5de5\u4f5c\uff0c\u4ed6\u7684\u597d\u5904\u662f\u5feb\u6377\uff0c\u4f46\u662f\u81ea\u7531\u5ea6\u5c0f\u3002
\u4f7f\u7528\u5806\u5c31\u8c61\u662f\u81ea\u5df1\u52a8\u624b\u505a\u559c\u6b22\u5403\u7684\u83dc\u80b4\uff0c\u6bd4\u8f83\u9ebb\u70e6\uff0c\u4f46\u662f\u6bd4\u8f83\u7b26\u5408\u81ea\u5df1\u7684\u53e3\u5473\uff0c\u800c\u4e14\u81ea\u7531\u5ea6\u5927\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-\u5806\u6808
1\u3001\u8ba1\u7b97\u673a\u4e2d\u7684\u5185\u5b58\u5206\u4e3a\u4e24\u90e8\u5206\uff1a\u4e00\u90e8\u5206\u662f\u6808\uff08stack\uff0c\u4e5f\u79f0\u5806\u6808\uff09\uff0c\u53e6\u4e00\u90e8\u5206\u662f\u5806\uff08heap\uff09\u3002
2\u3001 \u6808\uff0c\u53ef\u4ee5\u770b\u4f5c\u662f\u4e00\u645e\u5361\u7247\uff0c\u6700\u4e0a\u9762\u7684\u5361\u7247\u8868\u793a\u7a0b\u5e8f\u7684\u5f53\u524d\u4f5c\u7528\u57df\uff0c\u8fd9\u5f80\u5f80\u5c31\u662f\u5f53\u524d\u6b63\u5728\u6267\u884c\u7684\u51fd\u6570\u3002
3\u3001\u5806\uff0c\u4e00\u6bb5\u5b8c\u5168\u72ec\u7acb\u4e8e\u5f53\u524d\u51fd\u6570\u6216\u8005\u6808\u5e27\u7684\u5185\u5b58\u533a\u3002\u5982\u679c\u4e00\u4e2a\u51fd\u6570\u4e2d\u58f0\u660e\u4e86\u4e00\u4e9b\u53d8\u91cf\uff0c\u800c\u4e14\u5e0c\u671b\u5f53\u8fd9\u4e2a\u51fd\u6570\u5b8c\u6210\u65f6\u5176\u4e2d\u58f0\u660e\u7684\u53d8\u91cf\u4ecd\u7136\u5b58\u5728\uff0c\u5c31\u53ef\u4ee5\u5c06\u8fd9\u4e9b\u53d8\u91cf\u7f6e\u4e8e\u5806\u4e2d\u3002
\u8865\u5145\u8bf4\u660e:
1\u3001 \u5806\u548c\u6808\u76f8\u6bd4\uff0c\u6ca1\u90a3\u4e48\u6e05\u6670\u7684\u7ed3\u6784\u6027\u3002\u53ef\u4ee5\u628a\u5806\u53ef\u4f5c\u662f\u4e00\u201c\u5806\u201d\u5c0f\u73a9\u827a\u3002\u7a0b\u5e8f\u53ef\u4ee5\u5728\u4efb\u4f55\u65f6\u95f4\u5411\u8fd9\u4e2a\u201c\u5806\u201d\u589e\u52a0\u65b0\u7684\u4e1c\u897f\uff0c\u6216\u8005\u4fee\u6539\u5806\u4e2d\u5df2\u6709\u7684\u4e1c\u897f\u3002
2\u3001\u5806\u6808\u662f\u4e00\u79cd\u6267\u884c\u201c\u540e\u8fdb\u5148\u51fa\u201d\u7b97\u6cd5\u7684\u6570\u636e\u7ed3\u6784\u3002 \u8bbe\u60f3\u6709\u4e00\u4e2a\u76f4\u5f84\u4e0d\u5927\u3001\u4e00\u7aef\u5f00\u53e3\u4e00\u7aef\u5c01\u95ed\u7684\u7af9\u7b52\u3002\u6709\u82e5\u5e72\u4e2a\u5199\u6709\u7f16\u53f7\u7684\u5c0f\u7403\uff0c\u5c0f\u7403\u7684\u76f4\u5f84\u6bd4\u7af9\u7b52\u7684\u76f4\u5f84\u7565\u5c0f\u3002\u73b0\u5728\u628a\u4e0d\u540c\u7f16\u53f7\u7684\u5c0f\u7403\u653e\u5230\u7af9\u7b52\u91cc\u9762\uff0c\u53ef\u4ee5\u53d1\u73b0\u4e00\u79cd\u89c4\u5f8b\uff1a\u5148\u653e\u8fdb\u53bb\u7684\u5c0f\u7403\u53ea\u80fd\u540e\u62ff\u51fa\u6765\uff0c\u53cd\u4e4b\uff0c\u540e\u653e\u8fdb\u53bb\u7684\u5c0f\u7403\u80fd\u591f\u5148\u62ff\u51fa\u6765\u3002
栈是一种数据结构,用于存放数据,可以理解为羽毛球筒,羽毛球就是数据,最先放进去的最后才能拿出来。
c语言可以用结构体来定义栈,每个元素以指针指向它前面的元素,最前面的元素称为栈顶,它的指针为空。
依次读入字符,遇到括号则放入括号栈,遇到其他字符则跳过。
若遇到右括号,则判断它前面的元素是否是和他匹配的左括号,若不是,则返回"不匹配",若是,则将他们2个丢掉,让左括号的指针指向空即可。
栈就是先进后出的一种数据结构
栈的两操作有入栈和出栈比如入栈
1 2 3 4 5 6 7
一个一个压入栈中最后一个是在最顶部(右边看成上左边看成下)
出栈的时候就是从栈定取到栈底
7 6 5 4 3 2 1
这种
这题就是利用栈这种特性解决括号匹配的问题
是要写代码吗
自己不想写的话我可以有偿代劳的哦
绛旓細鍫(heap)鍜屾爤(stack)鏈変粈涔鍖哄埆锛燂紵绠鍗曠殑鍙互鐞嗚В涓:heap:鏄敱malloc涔嬬被鍑芥暟鍒嗛厤鐨勭┖闂存墍鍦ㄥ湴銆傚湴鍧鏄敱浣庡悜楂樺闀跨殑銆俿tack:鏄嚜鍔ㄥ垎閰嶅彉閲忥紝浠ュ強鍑芥暟璋冪敤鐨勬椂鍊欐墍浣跨敤鐨勪竴浜涚┖闂淬傚湴鍧鏄敱楂樺悜浣庡噺灏戠殑銆備竴涓敱c/C++缂栬瘧鐨勭▼搴忓崰鐢ㄧ殑鍐呭瓨鍒嗕负浠ヤ笅鍑犱釜閮ㄥ垎 1銆佹爤鍖猴紙stack锛夆旂敱缂栬瘧鍣ㄨ嚜鍔ㄥ垎閰...
绛旓細鏍堟槸涓绉嶆暟鎹粨鏋勩傛爤鍙厑璁歌闂竴涓暟鎹」鍗虫渶鍚庢彃鍏ョ殑鏁版嵁椤:鍗虫渶鍚庢彃鍏ョ殑鏁版嵁椤广傜Щ鍑鸿繖涓暟鎹」涔嬪悗鎵嶈兘璁块棶鍊掓暟绗簩涓彃鍏ョ殑鏁版嵁椤癸紝渚濇绫绘帹銆傚嵆鍚庤繘鍏堝嚭銆傛斁鍏ユ槸涓绉嶅帇鏍堢殑杩囩▼锛涘彇鍑烘槸涓绉嶅脊鏍堢殑杩囩▼锛屽脊鏍堢殑鏃跺欏苟鍒犻櫎杩欎釜鍏冪礌銆備互鎴戜滑鐢熸椿涓殑妗惰钖墖鐨勪緥瀛愬彲浠ヨ鏄庤繖涓鐐,褰撳巶瀹跺湪鐢熶骇...
绛旓細锛5锛夊爢鍜屾爤涓殑瀛樺偍鍐呭 鏍堬細鍦ㄥ嚱鏁拌皟鐢ㄦ椂锛岀涓涓繘鏍堢殑鏄富鍑芥暟涓悗鐨勪笅涓鏉℃寚浠わ紙鍑芥暟璋冪敤璇彞鐨勪笅涓鏉″彲鎵ц璇彞锛夌殑鍦板潃锛岀劧鍚庢槸鍑芥暟鐨勫悇涓弬鏁帮紝鍦ㄥぇ澶氭暟鐨C缂栬瘧鍣ㄤ腑锛屽弬鏁版槸鐢卞彸寰宸﹀叆鏍堢殑锛岀劧鍚庢槸鍑芥暟涓殑灞閮ㄥ彉閲忋傛敞鎰忛潤鎬佸彉閲忔槸涓嶅叆鏍堢殑銆傚綋鏈鍑芥暟璋冪敤缁撴潫鍚庯紝灞閮ㄥ彉閲忓厛鍑烘爤锛岀劧鍚...
绛旓細c璇█鏍鍖猴細鏍堝尯鏄敤鏉ュ瓨鏀惧眬閮ㄥ彉閲忕殑锛屾瘮濡傚嚱鏁板唴閮ㄥ畾涔夌殑int a,int b,const int a,char p,char arr[ ]锛岃繕鏈夊嚱鏁扮殑褰㈠弬绛夌瓑閮芥槸瀛樻斁鍦ㄦ爤鍖恒傛爤鍖虹殑鏁版嵁鐢辩紪璇戝櫒绠$悊锛岃皟鐢ㄥ畬涔嬪悗灏辫嚜鍔ㄩ噴鏀撅紝鍘嬫爤锛屽嚭鏍堛傚厛杩涘悗鍑虹殑鍘熷垯锛屾瘮濡傚綋浣犳墽琛屽埌鍑芥暟璋冪敤鐨勬椂鍊欙紝缂栬瘧鍣ㄤ細鍏堟妸涓嬩竴鏉′唬鐮佺殑鍦板潃鍘嬪叆鏍堜腑...
绛旓細鍫(heap)鍜屾爤(stack)鍘熸湰鏄袱绉嶄笉鍚岀殑鏁版嵁缁撴瀯锛屽湪C璇█鍐呭瓨琛ㄨ堪涓紝浠h〃鐫鐢ㄨ繖涓ょ鏁版嵁缁撴瀯绠$悊鐨勪袱绉嶅唴瀛樺潡銆傚爢鐢辨暣涓郴缁熷叡浜紝鍚勪釜杩涚▼鎷ユ湁鍚屼竴涓爢銆 鏍堢敱姣忎釜杩涚▼鑷绠$悊锛屼篃灏辨槸姣忎釜杩涚▼鐨鏍堟槸鐙珛鐨勶紝浜掍笉鐩稿叧銆傚叿浣撳尯鍒涓嬶細涓銆佹爤涓婄殑鍐呭瓨鐢辩郴缁熻嚜鍔ㄧ鐞嗗垎閰嶏紝鐢ㄤ簬瀛樺偍灞閮ㄥ彉閲忋 鍫嗕腑鐨...
绛旓細鏍堟槸涓暟鎹粨鏋勶紝鎸囨暟鎹殑鍚庤繘鍏堝嚭鐨勬柟娉曘c璇█鍙互缂栧啓杩欑鏁版嵁缁撴瀯銆傚彟澶栧湪c涓弬鏁扮殑浼犻掑疄闄呬笂涔熸槸鍏ユ爤鍜屽嚭鏍堢殑杩囩▼銆傚鏋滀笉鏄庣櫧锛屽缓璁湅涓涓嬫暟鎹粨鏋勪腑瀵规爤鐨勮瑙c
绛旓細鏍(Stack)鏄粎闄愬埗鍦ㄨ〃鐨勪竴绔繘琛屾彃鍏ュ拰鍒犻櫎杩愮畻鐨勭嚎鎬ц〃锛岀О鎻掑叆銆佸垹闄よ繖涓绔负鏍堥《锛屽彟涓绔О涓烘爤搴曘傝〃涓棤鍏冪礌鏃朵负绌烘爤銆傛爤 鐨勪慨鏀规槸鎸夊悗杩涘厛鍑虹殑鍘熷垯杩涜鐨勶紝鎴戜滑鍙堢О鏍堜负LIFO琛(Last In First Out)銆傞氬父鏍堟湁椤哄簭鏍堝拰閾炬爤涓ょ瀛樺偍缁撴瀯銆 鏍堢殑鍩烘湰杩愮畻鏈夊叚绉嶏細 路鏋勯犵┖鏍堬細InitStack(S...
绛旓細绋嬪簭鍙互灏嗘暟鎹帇鍏鏍涓紝涔熷彲浠ュ皢鏁版嵁浠庢爤椤跺脊鍑恒傚湪i386鏈哄櫒涓紝鏍堥《鐢辩О涓篹sp鐨勫瘎瀛樺櫒杩涜瀹氫綅銆傚帇鏍堢殑鎿嶄綔浣垮緱鏍堥《鐨勫湴鍧鍑忓皬锛屽脊鍑虹殑鎿嶄綔浣垮緱鏍堥《鐨勫湴鍧澧炲ぇ銆 鏍堝湪绋嬪簭鐨勮繍琛屼腑鏈夌潃涓捐冻杞婚噸鐨勪綔鐢ㄣ傛渶閲嶈鐨勬槸鏍堜繚瀛樹簡涓涓嚱鏁拌皟鐢ㄦ椂鎵闇瑕佺殑缁存姢淇℃伅锛岃繖甯稿父绉颁箣涓哄爢鏍堝抚鎴栬呮椿鍔ㄨ褰曘傚爢鏍堝抚...
绛旓細缃戠粶涓殑鏁版嵁鍖呬紶杈撶瓑鍦烘櫙鍒欏父甯搁渶瑕佺敤鍒伴槦鍒椼傚畠浠湪缂栫▼涓壆婕旂潃閲嶈鐨勮鑹诧紝甯姪绋嬪簭鍛樻洿濂藉湴绠$悊鏁版嵁鍜屾祦绋嬨傛荤殑鏉ヨ锛岃櫧鐒鏍鍜岄槦鍒楀湪鎿嶄綔涓婃湁鎵涓嶅悓锛屼絾瀹冧滑閮芥槸閲嶈鐨勬暟鎹粨鏋勶紝鍏锋湁瀛樺偍鏁版嵁銆佺鐞嗘祦绋嬪拰瑙e喅鐗瑰畾闂鐨勫姛鑳姐傜悊瑙e畠浠殑鍏卞悓鐐癸紝鏈夊姪浜庢垜浠洿濂藉湴杩愮敤杩欎袱绉嶆暟鎹粨鏋勮В鍐冲疄闄呴棶棰樸
绛旓細闄愬畾浠呭湪琛ㄥ熬杩涜鎻掑叆鍜屽垹闄ゆ搷浣滅殑绾挎ц〃銆傝繖涓绔绉颁负鏍椤讹紝鐩稿鍦帮紝鎶婂彟涓绔О涓烘爤搴曘傚悜涓涓爤鎻掑叆鏂板厓绱犲張绉颁綔杩涙爤銆佸叆鏍堟垨鍘嬫爤锛屽畠鏄妸鏂板厓绱犳斁鍒版爤椤跺厓绱犵殑涓婇潰锛屼娇涔嬫垚涓烘柊鐨勬爤椤跺厓绱狅紱浠庝竴涓爤鍒犻櫎鍏冪礌鍙堢О浣滃嚭鏍堟垨閫鏍堬紝瀹冩槸鎶婃爤椤跺厓绱犲垹闄ゆ帀锛屼娇鍏剁浉閭荤殑鍏冪礌鎴愪负鏂扮殑鏍堥《鍏冪礌銆