今日重点学习数据结构中的栈,它遵循后进先出原则,类似单端进出的储物箱,顶部是唯一的数据出入口,这使其在处理特定顺序问题上优势显著。
学习中探究了栈的基本操作,初始化时用结构体表示栈,含存储数据的数组(或链表)与指示栈顶的指针 top,初始 top 设为 -1 代表空栈。入栈是先让 top 加 1 指向新栈顶,再存入元素;出栈与之相反,先取栈顶元素,再让 top 减 1,且操作前要判断栈空与否。获取栈顶元素、判断栈空或满也有相应简单规则。
实践时,常因边界条件判断失误出错,像栈空想出栈、栈满还入栈。复杂算法场景下,运用栈辅助解决问题不够熟练,如利用栈实现表达式求值时,操作符和操作数的入栈出栈顺序难把握。
明日计划深入学习栈在实际应用中的经典算法,如函数调用栈、括号匹配等,加深理解,提升运用栈解决复杂问题的能力。