python做网站php,山东网站app制作,7游网页游戏平台,山西建设集团网站20162329 2017-2018-1 《程序设计与数据结构》第五周学习总结 教材学习内容总结 1.学习目标 了解集合的概念了解并使用抽象数据类型初步了解使用Java泛型学习栈这种数据结构用数组、链表实现栈2.学习内容 集合的概念#xff1a; 集合是手机并组织其他对象的对象#xff0c;他…20162329 2017-2018-1 《程序设计与数据结构》第五周学习总结 教材学习内容总结 1.学习目标 了解集合的概念了解并使用抽象数据类型初步了解使用Java泛型学习栈这种数据结构用数组、链表实现栈2.学习内容 集合的概念 集合是手机并组织其他对象的对象他定义了访问和管理那些称为集合元素的其他对象的一种具体方式。在我们所学习的Java编程语言的庞大类库中Java Collections API 就表示了一些使用不同方式实现的几类集合的类。 抽象数据类型 事物的抽象往往可以隐藏其中大部分细节只需要通过一些小的接口就可以控制一个庞大的体系所以在编程时抽象的思维是非常重要的当你需要将一件事情用编程的方法实现的时候首先要做的是将这件事情抽象出一些接口就拿车来举个例子 首先车是一个庞大的体系但是我们在控制车的时候却并没有去考虑车的内部零件是如何运作的我们只是同过方向盘踏板等来实现对它的控制而这些我们实在知道的就是智造车的人给我们提供的接口。这样以来用户在使用它的时候就不需要考虑应该用哪个零件带动哪个零件它才能转弯这种实际问题。这样看我们的类也是一样的我们只是提供给用户一些看的到的方法函数用户通过这些方法的使用就能调用一个庞大的类而并不需要去考虑类中的逻辑。 泛型 泛型是在Java 5.0后才开始支持基于泛型来定义类的泛型的作用是在我们实例化类的对象时可以同时制定一种储存数据的类型这样就避免了我们要为不同的被储存类创建多个相应类型的类大大减少了代码复用增加了代码的可用能力而这种方法在我们的Java Collections API 中尤其有用因为既然是集合就必定需要储存元素但是每次用户用来存储的元素不可能都是一种类型这时泛型的作用就大大体现。 栈 栈也是集合中的一种他的模型就类似于现实中的羽毛球桶一样每次放置的羽毛球都只能放在前一个羽毛球的后面 每次取羽毛球的时候只能从后面取最后一个放进去的也就是一种LIFO结构 3.用数组、链表实现栈 数组实现栈 ArrayStack public class ArrayStackT implements StackT{private final int DEFAULT_CAPACITY 100;private int num;private T[] stack;public ArrayStack(){num 0;stack (T[])(new Object[DEFAULT_CAPACITY]);}public ArrayStack (int lenth){num 0;stack (T[])(new Object[lenth]);}public void push (T element){if (size() stack.length)expandCapacity();stack[num] element;num;}public T pop() throws Exception{if (isEmpty())throw new Exception(Stack is empty);num--;T result stack[num];stack[num] null;return result;}public T peek() throws Exception{if (isEmpty())throw new Exception(Stack is empty);return stack[num -1];}public boolean isEmpty(){return (num 0);}public int size(){return num;}public String toString(){String result ;for (int scan 0; scan num; scan)result result stack[scan].toString() \n;return result;}private void expandCapacity(){T[] larger (T[])(new Object[stack.length*2]);for (int index0; index stack.length; index)larger[index] stack[index];stack larger;}}链表实现栈 LinkedStack public class LinkedStackT implements StackT{private int num;private LinearNodeT Next;public LinkedStack(){num 0;Next null;}public void push (T element){LinearNodeT temp new LinearNodeT (element);temp.setNext(Next);Next temp;num;}public T pop() throws Exception{if (isEmpty())throw new Exception(Stack);T result Next.getElement();Next Next.getNext();num--;return result;}public T peek() throws Exception{if (isEmpty())throw new Exception(Stack);return Next.getElement();}public boolean isEmpty(){return (num 0);}public int size(){return num;}public String toString(){String result ;LinearNode current Next;while (current ! null){result result (current.getElement()).toString() \n;current current.getNext();}return result;}}Android 开发一个关于栈的小APP 界面布局 EditText控件输入需要加入栈中的元素 Button控件设置push压栈操作和pop出栈操作 TextView控件模拟栈的结构 活动代码 public class MainActivity extends AppCompatActivity{EditText editText;Button pop,push;TextView Stack;String result;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);editText (EditText)findViewById(R.id.in);pop (Button)findViewById(R.id.pop);push (Button)findViewById(R.id.push);Stack (TextView)findViewById(R.id.Stack);final ArrayStackString stack new ArrayStack();push.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {result editText.getText().toString();stack.push(result);Stack.setText(stack.toString());}});pop.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {try {stack.pop();Stack.setText(stack.toString());} catch (Exception e) {e.printStackTrace();}}});}
} 效果截图 代码托管 结对及互评 #### 本周并没有在结对方面有什么合作项目 点评模板 博客中值得学习的或问题 界面很好看问题分析可以更详细其他 希望我们结对在这学期能相互促进技术更上一层楼。 本周结对学习情况 20162302结对学习内容 一起讨论学习。其他 这学期的课程难度增加了很多有些时候感觉自己学到的东西还不扎实导致有时候做一些懂非常困难就算最终解决了也会花费很长时间效率很低希望能尽快适应新方式新进度。 学习进度条 代码行数新增/累积博客量新增/累积学习时间新增/累积重要成长目标5000行30篇400小时第一周0/2001/210/20了解数据结构及算法第二周664/5002/310/20系统的学习了查找和排序第五周1333/10002/215/20栈数据结构的学习参考资料 《Java程序设计与数据结构教程第二版》《Java程序设计与数据结构教程第二版》学习指导...转载于:https://www.cnblogs.com/Zhangxusheng/p/7671164.html