問題及**:
/*
* 檔名稱:date.cpp
* 作 者:單昕昕
* 完成日期:2023年3月31日
* 版 本 號:v1.0
* 問題描述:假設表示式中允許包含3中括號:圓括號、中括號和大括號。
設計乙個演算法採用「鏈棧」判斷表示式中的括號是否正確配對。
* 程式輸入:乙個字串表示式。
* 程式輸出:括號是否正確配對。
*/ #include#include#includeusing namespace std;
typedef struct linknode
listack;
void initstack(listack *&s)//初始化
void push(listack *&s,char e)//進棧
bool pop(listack *&s,char &e)//出棧
bool gettop(listack *s,char &e)//取棧頂元素
bool stackempty(listack *s)//棧是否為空
void destroystack(listack *&s)//銷毀棧
free(p);
}bool match(char exp,int n)//匹配
{ int i=0;
char e;
bool match=true;
listack *st;
initstack(st);
while(i>s;
int len=strlen(s);
bool m=match(s,len);
if(m==true)//匹配成功
(⊙v⊙)嗯,用棧的進出來做匹配的問題。
我之前還想過能不能直接儲存左右括號的數目,因為這個數目一定是相同的,但是後來才發現可能有些情況不成立,比如())(這種。。
棧應用 , 判斷表示式是否正確
一,模擬棧 package com.zf.test public class stackx public int size public void put char entry public char pop public boolean isempty public boolean isfull ...
Java 判斷表示式中的括號是否正確配對
string biaoda 1 2 6 表示式 char biao biaoda.tochararray 將字串轉化成字元陣列int top 0 計數,左括號 1,右括號 1,最後總和0則匹配 boolean end true true 表示匹配 遍歷表示式中所有字元 for int i 0 i b...
利用棧判斷輸入的表示式中括號是否配對
解題思路 在表示式括號配對時返回true,否則返回false。設定乙個鏈棧st,掃瞄表示式exp,遇到左括號時進棧,遇到右括號時若棧頂為左括號,則出棧,否則返回false。當表示式掃瞄完畢,棧為空時返回true,否則返回false。演算法如下 include include includeusing...