栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

心得体会day14-16(日撸 Java 三百行)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

心得体会day14-16(日撸 Java 三百行)

文章链接:日撸 Java 三百行(总述)_minfanphd的博客-CSDN博客

day14 栈 14.1 栈的特点:

栈:后进先出,只能在栈顶操作。是先移动“指针”还是先移动数据,在出栈和进栈时要保持一致。当进栈操作时,先将数据存入,“指针”再做加一操作;当出栈时,先将数据取出,“指针”再做减一操作。在写代码过程中,我为了方便直接,在出栈时直接depth--,但是在调试时发现了问题。因为数组是从0开始的,取出的数据并不是自己想要的。

//出栈
tempPopChar = data[depth--];
    
    public boolean push (char paraChar) {
        if (depth == MAX_DEPTH) {
            System.out.println("Stack is full!");
            return false;
        }

        data[depth++] = paraChar;
        return true;
    }


    
    public char pop() {
        char tempPopChar;
        if (depth == 0) {
            System.out.println("Stack is empty");
            return '';
        }

        // error code : tempPopChar = data[depth--];
        tempPopChar = data[depth - 1];
        depth--;
        return tempPopChar;
    }
day15 栈的应用(括号匹配) 15.1 思路

如(),[],{}括号左右对称,我们将括号分为左右,左括号入栈,遇到右括号就出栈一个左括号与之匹配,匹配成功即匹配,失败则不匹配。不要忘记在最后要判断一下栈中括号是否出栈完。在这里使用的是switch...case来进行判断分支,但是若换成if,else if,else来实现,则代码中会出现很多的分支,显然会显得代码很冗余,所以当分支较多时,使用switch相比if会好一些。

Is the expression [2 + (1 - 3)] * 4 bracket matching? true
Is the expression ( )  ) bracket matching? false
Is the expression (()()(()) bracket matching? false
Is the expression ({}[]) bracket matching? true
Is the expression )( bracket matching? false
day16 递归 16.1 递归特点

我的理解:自己调用自己的方法,但是不能无限制的调用,在合适的时候一定又要一层层跳出自己方法最后跳出。在使用递归时,不能把问题考虑的太细,不然会陷入这个循环中,既然每个子问题规律一样,只需要知道他们规律,剩下交给计算机处理。

总结

1.程序实现出入栈,根据栈的特点,括号匹配例如栈来实现

2.递归的简单应用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号