js資料結構 棧解決括號不匹配問題

2022-07-13 18:09:14 字數 979 閱讀 6890

棧可以用來判斷乙個算術表示式中的括號是否匹配。

思路:讀取算術表示式,遇到左括號『』、『]』、')'的時候,取出棧頂元素,是否滿足讀取的右括號,棧頂是與之相匹配的左括號。最後判斷棧是否為空,為空證明該表示式沒有問題,否則則說明這個表示式存在括號不匹配問題。

首先我們構建乙個棧。

function stack()

函式實現:

function push(ele)

function pop()

function peek()

function clear()

function len()

function isempty()

特別的,peek()與pop()函式不同在於,peek()只是讀取棧頂,而不修改棧頂,而pop()是取出棧頂的元素,棧將壓出棧頂元素。

signup()函式接收兩個引數,棧物件stack和讀取的元素ele

function signup(stack, ele)':

case ']':

case ')':

topele = stack.pop();

console.info(stack.top)

if(( topele=='')|| topele=='('&&ele == ')'|| topele=='['&&ele == ']')

else

break;

}}

接下來就是new乙個棧物件,讀取表示式,然後乙個乙個呼叫signup函式了

input1 = document.getelementbyid('input1').value;

for(var i = 0; i這裡,我使用的是在html頁面放置乙個id叫input1的input標籤,js獲取其value後使其每乙個字元都呼叫一次signup函式,最後判斷棧內是否為空~

**又不完善之處還請各位大人多多提醒,小女子這廂有禮了》.<

資料結構 棧實現括號匹配

真正學習之後,才發現那些所謂的大嬸不過是多用功了些。不知道以前為什麼不親自動手做做,原來這麼簡單。include include include include 棧的鏈式儲存 typedef struct data typedef struct stack 初始化空棧 void initstack ...

資料結構 鏈棧實現括號匹配

最近在學資料結構,所以發的大多數都是關於資料結構的題 括號匹配原來用動態規劃做的一道題,現在老師要用棧來實現,用就用吧,還不讓用函式,只能用鏈棧,不開森 很簡單的思路,如果是 就看棧頂元素是否匹配,匹配就往下操作,如果表示式完了,棧不為空,不匹配 如果棧空了,表示匹配 下面是 的實現 include...

括號匹配 資料結構 棧 C

在程式設計當中我們只會用到三種括號 圓括號 方括號和花括號 編譯器在編譯的時候會檢查括號是否正確匹配。例如 都是合法的匹配。但是 則是不合法的匹配。請編寫乙個程式來判斷輸入的括號序列是否合法。輸入測試資料由多組,每組資料有一行,為 組成的序列,長度不超過1000 輸出對於每組資料輸出一行,如果是合法...