「鏈棧」判斷表示式中的括號是否正確配對

2021-07-10 21:38:17 字數 1235 閱讀 3355

問題及**:

/*       

* 檔名稱: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...