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开发完成效果图
代码托管
结对及互评
- 博客中值得学习的或问题:
- 叙述的问题很清晰,讲解很仔细
- 代码过于详细
- 结构清晰
本周结对学习情况
-
结对学习内容:
没有进行系统的结对学习
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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 |