C語言用棧編寫括號匹配

時間 2021-08-30 09:32:00

1樓:記住一座城

#define stack_size 160 //棧空間大小

#define flase 0

#define true 1

typedef int bool;

/**棧定義**/

typedef struct

stack;

void initializing(stack **s) //初始化棧為空

void destory(stack **s) //銷燬棧

void clear(stack *s) //清空棧

char gettop(stack *s) //取得棧頂元素

else

return '\0';

}bool isempty(stack *s) //判斷棧是否為空

void push(stack *s, char ch) //入棧

else

}char pop(stack *s) //出棧

else

}/****************************/

bool match(char *ch) //利用棧判斷括號是否匹配

i++; //其他符號繼續讀取

}if (s->top != -1) //若棧不為空,輸出不匹配個數,並返回假

else

i = true;

destory(&s); //銷燬單連結串列

return i;}

2樓:蟲蟲當家

我不精通c語言,但也從事程式設計。我不知道房東的語法錯誤。如果房東沒有一個語法錯誤,我可以幫你分析下一個問題。為了敘述方便,我用,而不是左括號)

遇到左括號,火被壓入堆疊(沒問題)。

時,遇到右括號? ? (這是關鍵)

不應該試圖彈出遇到右括號的的頂部元素(稱為退棧)。為什麼要嘗試?如果堆疊已經是空的,它不能被彈出!

此時比失敗。如果你可以彈出,然後彈出棧頂元素「看易拉罐元素,在右括號是不是一對,如果不是直接的匹配失敗,否則繼續迴圈。

房東是一個很好的瞭解未來應該可以解決這個問題。

3樓:匿名使用者

網上搜搜棧的**看看,應該是有不少的。改造一下

用C語言編寫「背單詞程式」,用C語言編寫如下程式?

董俊錕 include include include struct word 定義一個word的結構體,裡面的兩個成員分別放英語單詞和相應的漢語翻譯 int point 0 統計分數的 int count1 0 測試的次數 函式宣告,往詞庫中新增片語 函式宣告,輸出詞庫中所有的片語 函式宣告,輸入...

用c語言編寫簡單計算器程式,用c語言編寫一個簡單計算器程式

問明 include stdio h 計算器 voidmenu 自定義的選單介面 printf n printf 請輸入你的選擇 n printf 1 n printf 2 n printf 3 n printf 4 n printf n intmain inti 0 intj 0 intnum 0...

用C語言編寫類似計算器的程式,用C語言編寫一個類似計算器的程式

藍秀楓 note your choice is c ide include stdio.h include stdlib.h include ctype.h int n 0 char record 20 float product float change float muli return sum...