20162302 《程序设计与数据结构》第五周学习总结

20162302 2017-2018-1 《程序设计与数据结构》第五周学习总结

教材学习内容总结

熟悉栈的结构
用数组实现栈
用链表实现栈
将栈应用到android开发

教材学习中的问题和解决过程

  • 问题1:在用数组实现栈的时候如何解决空间不足的问题

  • 问题1解决方法: 可以写一个私有方法用于扩充数组容量:建立一个比原来大的数组并把数据移动到里面。

private void expandCapacity() {
        T[] larger = (T[])(new Object[stack.length*2]);
        for (int index=0; index < stack.length; index++)
            larger[index] = stack[index];
        stack = larger;
    }
  • 问题2:在用链表实现的栈里面,不能像数组一样通过序号来直接得到指定位置的数据,那么寻找特定位置的数据
  • 问题2解决方法:创建一个get方法通过for循环来循环得到需要的数据
private code get(int givenPosition) {
            if (!isEmpty() && 1 <= givenPosition && givenPosition <= count){
                System.out.println("Error");
                return null;
            } else {
            code currentNode = first;
            for (int i = 1; i < givenPosition; i++) {

                currentNode = currentNode.next;
            }
            assert currentNode != null;
            return currentNode;
        }
 }

代码调试中的问题和解决过程

在android开发方面还不是很熟练,遇到过方方面面的问题

  • 问题1:使用LinearLayout结构的时候控件排成一列,很不美观
  • 解决方案:在原有的LinearLayout里面再镶嵌一个LinearLayout,并将按钮放到里面(代码经过简化处理)
<LinearLayout >

    <TextView/>

    <TextView/>

    <EditText/>

    <TextView/>

    <LinearLayout>

        <Button/>

        <Button/>

    </LinearLayout>

    <TextView/>

</LinearLayout>

界面预览:

  • 问题2:怎样给按键加上动画效果
  • 解决方案:通过对Android中简单的Button设计的参考,我在drawable文件夹里面创建了一个bottons的xml文件,里面对button的颜色进行了简单的设计,即平时的颜色和按下的颜色。对于颜色的html表示不熟悉可以通过html颜色代码查找到自己需要的颜色。
<?xml version="1.0" encoding="utf-8"?>
        <selector xmlns:android="http://schemas.android.com/apk/res/android" >
            <item  android:state_pressed="true">
                <shape>
                    <solid
                        android:color="#708090"/>
                </shape>
            </item>
            <item >
                <shape>
                    <solid
                        android:color="#1E90FF"/>
                </shape>

            </item>
</selector>
  • 问题3:按键在设置完成无法执行按下后的指令
  • 解决方案:需要声明add.setOnClickListener(this);
  • android开发完成效果图

代码托管

结对及互评

  • 博客中值得学习的或问题:
    • 叙述的问题很清晰,讲解很仔细
    • 代码过于详细
    • 结构清晰

本周结对学习情况

  • 20162329

  • 结对学习内容:
    没有进行系统的结对学习

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 10/10
第二周 ??/?? 1/2 15/25
第三周 465/465 1/3 15/40
第四&五周 443/908 3/7 40/80

参考资料

原文地址:https://www.cnblogs.com/yangjingdian/p/7672722.html