棧 括號匹配

2021-10-01 04:33:01 字數 1970 閱讀 7349

#include#include#define max_size 1024

#define seqstack_true 1

#define seqstack_false 0

/** 掃瞄字串,如果碰到左括號,直接入棧;

如果碰到右括號,從棧頂彈出括號,

判斷是否是左括號,如果是則匹配成功

**///陣列模擬棧的順序儲存

typedef struct seqstackseqstack;

typedef struct mycharmychar;

/*******************

********************/

//初始化

seqstack* init_seqstack();

//入棧

void push_seqstack(seqstack* stack,void* data);

//返回棧頂元素

void* top_seqstack(seqstack* stack);

//出棧

void pop_seqstack(seqstack* stack);

//判斷是否為空

int isempty_seqstack(seqstack* stack);

//返回棧中元素個數

int size_seqstack(seqstack* stack);

//清空棧

void clear_seqstack(seqstack* stack);

//銷毀

void free_seqstack(seqstack* stack);

/*******************

********************/

//初始化

seqstack* init_seqstack()

stack->size = 0;

return stack;

}//入棧

void push_seqstack(seqstack* stack,void* data)

if(stack->size==max_size)

if(data==null)

stack->data[stack->size] = data;

stack->size++;

}//返回棧頂元素

void* top_seqstack(seqstack* stack)

if(stack->size==0)

return stack->data[stack->size-1];

}//出棧

void pop_seqstack(seqstack* stack)

if(stack->size==0)

stack->size--;

}//判斷是否為空

int isempty_seqstack(seqstack* stack)

if(stack->size==0)else

return -1;

}//返回棧中元素個數

int size_seqstack(seqstack* stack)

//清空棧

void clear_seqstack(seqstack* stack)

stack->size = 0;

}//銷毀

void free_seqstack(seqstack* stack)

free(stack);

}int isleft(char c)

int isright(char c)

mychar* creatmychar(char* p,int index)

void showerror(char* str,int pos)

}else

} p++;

index++; }

while(size_seqstack(stack)>0) }

int main()

括號匹配 棧

蒜頭君在紙上寫了乙個串,只包含 和 乙個 能唯一匹配乙個 但是乙個匹配的 必須出現在 之前。請判斷蒜頭君寫的字串能否括號完全匹配,如果能,輸出配對的括號的位置 匹配的括號不可以交叉,只能巢狀 一行輸入乙個字串只含有 和 輸入的字串長度不大於 50000 如果輸入括號不能匹配,輸出一行 no 否則輸出...

棧括號匹配

input 輸入包括多組測試資料,每組資料是乙個字串,字串只包含 等字元。output 對於每組資料輸出 yes 表示當前字串中的括號是匹配的,否則輸出 no 不包括引號 sampleinput sampleoutput yes no題解 利用棧 includeusing namespace std...

棧 括號匹配

括號匹配,棧的經典題目,將左括號入站,然後遇到右括號就詢問棧頂是不是與之相匹配的左括號,如果是,出棧,不是,匹配失敗。注意這個題目是多組輸入,而且包含空格,所以需要用 gets讀入。include include include include using namespace std typedef...