第十四周一周總結

2021-08-13 06:54:36 字數 1439 閱讀 8442

這週我主要對棧方面的內容進行了學習,棧其實是乙個只能在末端刪除和插入的表,它的特點就是後進先出(或者叫先進後出)。棧可以用鍊錶來實現,也可以用陣列來實現,陣列實現棧會比鍊錶實現更簡單一些,並且運算的速度也會快很多,唯一的弊端就是它需要提前宣告乙個陣列的大小,但大多數時候這不會造成太大的影響,所以我主要對陣列實現棧進行了學習。

在進行棧操作前,我們先要建立乙個結構體,包括乙個陣列和乙個頭位置的數,即

typedef struct stack*stack;

然後我們要建立乙個棧,就是這樣:

stack create(int max)

將乙個資料進棧:

void push(char x, stack s)

返回棧頂:

char top(stack s)
資料出棧:

void pop(stack s)

判斷棧是否為空:

bool isempty(stack s)

ps:這只是對陣列實現棧進行了簡單的操作,並沒有對棧滿等情況進行討論。

然後我還解決了乙個字元平衡的問題,就是輸入大中小括號,判斷它們是否正確對應,例如:是對應的,[(])是不對應的。

實現的方法就是將遇到的左括號都推入棧中,遇到右括號就將看其是否和棧頂元素對應,如果對應就將棧頂元素彈出,不對應就將這個括號放入棧中並報錯,最後如果將所有棧元素都彈出,則說明所有括號都對應。

具體的實現**如下:

#include #include #include #include typedef struct stack *stack;

stack create(int max);

char top(stack s);

void pop(stack s);

struct stack;

stack create(int max)

char top(stack s)

void pop(stack s)

void push(char x, stack s)

bool isempty(stack s)

void dispose(stack s)

int main(void)

if( str[i] == ')')

}else if( str[i] == ']')

}else if( str[i] == '}')}}

if(isempty(p)) printf("balance");

else printf("unbalance");

dispose(p);

return 0;

}

第十四周總結

一.學習 今天很開心,因為我成功的做出了我人生的第乙個比較完整全面的頁面,雖然用的都是一些很簡單的 但那也是我花了乙個晚上做出來的,是我用這段時間所學的前端知識做出來的。雖然當時已經很晚了,但我絲毫感覺不到睡意,心中只有乙個目標,那就是今晚一定要完成它。或許對別人來說這不算什麼,但那張頁面被注入的精...

第十四周總結

又是新的一周,新的一周是新的起航,是夢的開始,每天的生活不需要過的多麼驚濤駭浪,只要我們是平平淡淡 腳踏實地 按照自己的追求走過的那就會有價值,就值得回憶。這周依舊平平淡淡,每天還是遵循自己的計畫一步步走過來的,最震撼的一件事就是我們搬到了609學習,可能是新環境的原因,這裡的學習氛圍相當好,條件也...

第十四周週末總結

這幾天做了幾道題感覺有點把握住感覺了,然而今天晚上c題做了一晚上到現在還沒對,先是改了無數遍終於改出來了,然後提交就是不對,感覺思路和 都對,樣例也過,就是過不了,快被氣死。今天晚上做出這道題再睡。終於一行行 檢查找到是乙個判斷中j寫成i了,因為乙個小小的失誤這道並不難的題改了三個小時了。偏偏樣例還...