2019-05-12(棧應用 括號匹配 leetcode 20 有效括號 , 行編輯程序)

括號匹配思路:

1、遇到左邊的括號 進棧 ,
2、遇到右邊的括號獲取原來棧 中棧頂元素,與剛遇到的值進行匹配,匹配成功則彈棧;
重復上面的兩部分

數據結構的算法如何描述(未查資料寫的):

bool isValid(char * s){
InitStack(&S);
char *p = "String";" s == p"
"怎么描述左括號? = left  輸入的括號 為 n"
while(*p){
if( n = left){
push(&S,left);
}else{
if(getTop()  == n.left) "這種模式需不需要判空"
pop(S,left);
else(
return  error;
)
}
p = p+1;
}
return OK;

鄧俊輝版 算法描述

 算法中  ({ }) [ ]分別等,特例寫入算法中;

行編輯程序

描述:接收用戶從終端輸入的程序或者數據,并存入用戶的數據區,若沒接收一個字符就存入用戶的數據區 的做法顯然不是最恰當的,較好的做法是,設立緩沖區 :接收用戶的一行數據,而后在逐行的存入,
發現錯誤可以及時的更正;刪除前面一個 或者清空一個棧。

void   LineEdit(){
InitStack(&S);
ch = getChar();//重終端獲取第一個字符
while(ch!= EOF){
   while(ch != EOF &&ch != '\n'){
   switch(ch){
   case:'#':Pop(&S,&e);
   case:'@' x=clearStaeck(&S);
   default:Push(&S ,e)
     }
ch=getChar();//從終端獲取下一個字符;
   }
將棧中的數據轉入 傳送至 調用過程的數據區;
 }
ClearStack(S);
if(ch!=EOF){
ch = getchar();//獲取另外一行的第一個字符
}
DestoryStack(S);
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Swift1> Swift和OC的區別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,136評論 1 32
  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,438評論 0 5
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發此異常。 O...
    我想起個好名字閱讀 5,429評論 0 9
  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者...
    JasonShi6306421閱讀 1,255評論 0 1
  • ??在之前的兩篇文章——數據結構入門(一)棧的實現和數據結構入門(二)棧的應用之數學表達式求值中,筆者分別介紹了“...
    山陰少年閱讀 619評論 0 1