栈
Bread Sir
记录算法之路
展开
-
数据结构—栈应用(一)数制转换
问题: 十进制如何转换成二进制 十进制如何转换成八进制 十进制如何转换成十六进制十进制数N和其他d进制数的转换的原理为N=(N div d)* d + N mod d* 比如十进制的数字10转换为二进制口算就知道是1010,那按照上面的公式 N N div 2 N mod 2 10 5原创 2017-04-09 09:45:42 · 1000 阅读 · 0 评论 -
数据结构—栈应用(二)括号比配问题
分析一下: 1,发现左括号就入栈,发现右括号去找是否有与之匹配的左括号,有匹配的就出栈,把与之匹配的左括号从栈中删除。以此类推; [ ( ) ] 2) 当发现某一个右括号时,如果此时的栈已空,说明右括号多于左括号; [ ( ) ] ] (3) 从栈中弹出的左括号与当前检验的右括号类型不同,说明出现了括号交叉情况; [ ( ] ] (4) 当表达式中输入的右括号全部匹配完后原创 2017-04-09 10:04:47 · 421 阅读 · 0 评论 -
栈的实现
栈:上数据结构老师不给直接用c++中的stack容器,要自己实现,所以自己写了一个实现栈的入栈、出栈和取栈顶元素功能的程序,用链栈实现。怎样实现就不具体描述了,就是使用base和top指针来实现,top指针一直指向栈顶元素的下一个位置,base一直在栈底的位置。 注意:初始化栈时,base==top,且可通过这个判断栈是否为空。分析过程:栈的初始化栈初始化就是给栈开辟一些空间,然后让指针top等于原创 2017-05-12 09:53:52 · 900 阅读 · 2 评论