資料結構 使用棧進行括號匹配演算法

2021-05-26 13:04:51 字數 1426 閱讀 7033

#include

#include

typedef char elemtype;

//棧的定義

typedef struct linknode

linkstack;

void initstack(linkstack * &s);//棧的初始化

void clearstack(linkstack * &s);//棧的銷毀

int stacklength(linkstack * s);//求棧的長度

int stackempty(linkstack *s);//判斷棧是否是空棧

void push(linkstack * &s,elemtype e);//進棧

int pop(linkstack * &s,elemtype &e);//出棧

int gettop(linkstack * s,elemtype &e);//取棧頂元素

void displaystack(linkstack * s);//顯示棧裡面的元素

int match(elemtype exp,int n);//串括號的匹配

void main()

;if(match(c,5))

else

}//棧的初始化

void initstack(linkstack * &s)

//棧的銷毀

void clearstack(linkstack * &s)

free(p);

}//求棧的長度

int stacklength(linkstack * s)

return(n);

}//判斷棧是否是空棧

int stackempty(linkstack * s)

//進棧(頭插入法)

void push(linkstack * &s,elemtype e)

//出棧

int pop(linkstack * &s,elemtype &e)

p=s->next;

e=p->data;

s->next=p->next;

free(p);

return 1;

}//取棧頂元素

int gettop(linkstack * s,elemtype &e)

e=s->next->data;

return 1;

}//顯示棧裡面的元素

void displaystack(linkstack * s)

printf("\n");

}//判斷括號是否配對

int match(elemtype exp,int n)

else if(exp[i]==')')

else

}else

}i++;

}if(stackempty(st)==1)

else

}

資料結構 棧實現括號匹配

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

資料結構與演算法實驗3(棧) 括號匹配

用棧adt應用 對稱符號匹配判斷 輸入一行符號,以 結束,判斷其中的對稱符號是否匹配。對稱符號包括 輸出分為以下幾種情況 1 對稱符號都匹配,輸出 right.2 如果處理到最後出現了失配,則輸出兩行 第一行 matching failure.第二行 loss of right character ...

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

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