3 18 試寫乙個判別表示式中開 閉括號是否配對出現的演算法。 10

2025-02-12 04:20:13 字數 1653 閱讀 7886

設計乙個判別表示式中左、右括號是否配對出現的演算法,採用()資料結構最佳

1樓:網友

設計乙個判別表示式中左、右括號是否配對出現的演算法,採用棧資料結構最佳。

原因: 棧是一種具有記憶能力的線性表,存取規則是先進後出,判別時遇到乙個左括號時就向棧插入左括號,遇到右括號就從棧中刪除乙個左括號,最後若棧中沒有左括號就證明括號成對,所以採用棧最適合判斷表示式中括號是否成對出現。

2樓:網友

就是棧。配對,就是乙個左括號,乙個右括號。你從頭掃瞄字串,看見左括號就進棧,看見右括號就把裡面的最外乙個左括號出棧,這樣就是一對。

等掃瞄完的時候,看棧裡面好有沒有。如果沒有,那就是配對的,要不就是不配對。

設計乙個判別表示式中左、右括號是否配對出現的演算法,採用什麼資料結構最佳。

3樓:網友

使用「棧」 這種資料結構。

棧 (stack)是一種後進先出(last in first off,lifo)的資料結構。

演算法基本思想:依次判斷表示式中的每個字元,若是左括號就入棧,如果是右括號則出棧,出棧的時候判斷是否為空,如果為空,則說明不匹對,最後讀到表示式末尾沒有字元了,再判斷一下棧是否為空,如果為空,則說明匹配,不為空,說明不匹配。

#include

#include //malloc,realloc#include //含有overflow#include //exit()

#define s_size 100 //棧的空間大小。

#define stackincreament 10//增加空間。

struct sqstack;

void main()

的括號表示式:");

gets(ch);

while(*p)

case ']

case ')pop(s,e);

if ((e=='e=='p=='e=='p=='

p++;else

break;

default :p++;其他字元就後移。

if (stackempty(s))

printf("括號匹配成功");

elseprintf("缺少右括號!")

printf("");

void initstack(sqstack &s)int stackempty(sqstack s)void push(sqstack &s,int e)*(

void pop(sqstack &s,int &e)

4樓:匿名使用者

很明顯,用棧。

如果是左括號,入棧。

如果是右括號,看棧頂是不是左括號,如果是就把那個左括號出棧;否則不配對(可以直接結束演算法)

處理完所有符號後,棧為空則配對成功,否則不配對。

求下列括號匹配的檢驗的演算法 【(【】【】)】

5樓:匿名使用者

例如 1{2[3(4+4)(4+4)3]2} {大括號}[中括號](小括號)

1{2[3x8x8x3]2}

1x2304

先算最中心的括號 不管是加 減 乘 除 在沒有括號的情況下 先算乘除 再算加減 有括號的情況下 先算加減 再算乘除!

怎樣試男人是否在乎自己,怎樣試乙個男人是否在乎自己

男人就這樣.你們都是在互相猜疑.雙方都需要坦誠.我暈,什麼叫男人就是這樣 有什麼了不起 大不了重新找 既然提客知道如何對付他 你可以就這樣了 因為這個辦法確實不錯 我個人決的不該想著去考研他,感情是雙方的是真摯的,要是都彼此有猜疑就不好了是吧.本來沒誤會的都誤會了事情會更糟糕的.在他的朋友面前經常提...

怎樣判別乙個男孩子是不是渣男

日常生活中,該如何辨別乙個男人是不是渣男呢!看這五點就知道了,一般情況下,渣男在平時的生活中,一般都會有這五種行為,也是渣男最代表性的五種行為,女人一旦遇見,一定要趁早遠離,別因為你的不甘從而越陷越深。1 整天就知道看別人不順眼。總覺得自己很厲害的樣子,總覺得全世界就自己最牛,總覺得全世界都應該圍繞...

怎樣才可以做乙個汽車試駕,怎麼才能做汽車試駕員

到每個4s店假裝要買車 然後試駕完就找藉口走人 但是4s的試駕線路都很短 如果你對車比較了解懂行能說會倒 就應聘有關汽車測評試駕解說的公司上班 申請做試駕員 比如汽車之家 易車網 電視節目的汽車欄目組。哦 首先是交規 然後熟悉汽車 掌握開車要領 練習開車 不要緊張。汽車試駕是怎麼個流程 1 參加乙個...