最近在学数据结构,数据结构就我看来就是数据与数据之间的关系,比如链表就是将多个数据元素通过一定关系链接起来,只要找到第一个数据,就能找到别的所有的数据,链表的好处在于删除数据比较快捷,但查找效率就比较低,在比如树就是链表的一个延展,可以将树看成是由链表组成的,而栈只要清楚栈的定义是先来后出,后来先出,就可以通过数组实现啦,对啦 , 链表和树是要自己定义节点的。
下面是我写的一个树类和栈类:
/** * 栈 * @author * */ public class Stack<E> { public int temp=0;//定义栈顶 public int x; Object[] ob=new Object[0]; public int getX() { return x; } public void setX(int x) { this.x = x; } /** * 向栈中添加数据 * @param e 要添加的数据 */ public void add(E e){ Object[] se=new Object[ob.length+1]; for(int i=0;i<ob.length;i++){ se[i]=ob[i]; } se[ob.length]=e; ob=se; temp++; } /** * 从栈中取得数据 */ public E get(){ E relust=(E) ob[temp-1]; Object[] se=new Object[ob.length-1]; for(int i=0;i<ob.length-1;i++){ se[i]=ob[i]; } ob=se; temp--; return relust; } /** * 得到栈中的所有元素 * @return 所有元素 */ public E[] getall(){ return (E[]) ob; } }
/** * 树 * @author * */ public class JTree { private JTreeNode root;//树的根节点 /** * 向树中添加数据 * @param e 要添加的数据 */ public void add(int e){ JTreeNode node=new JTreeNode(); node.values=e; //判断根节点是否为空 if(root==null){ root=node; return; } else add(root, node); } /** * 建树 * @param root 树的根节点 * @param JTreeNode 要添加的节点 */ public void add(JTreeNode root,JTreeNode node){ //首先判断节点的大小 //节点比根节点小 if(node.values<=root.values){ if(root.leftchild!=null){ //节点左孩子节点非空 add(root.leftchild, node); }else { //节点左孩子节点为空 root.leftchild=node; } }else if(node.values>root.values){//节点比根节点大 if(root.rightchild!=null){ //节点右孩子节点非空 add(root.rightchild, node); }else{ //节点右孩子节点为空 root.rightchild=node; } } } /** * 遍历树 */ public void traver(){ if(root==null) return; System.out.println("root.values=:"+root.values); traver(root.leftchild); traver(root.rightchild); } public void traver(JTreeNode node){ if(node!=null){ // System.out.println("node.valuse=:"+node.values); traver(node.leftchild); // System.out.println("node.valuse=:"+node.values); traver(node.rightchild); System.out.println("node.valuse=:"+node.values); } } }
相关推荐
考试复习引导,包还重要复习要点,以及重要的程序,根据其快速复习课程
数据结构排序算法小结 数据结构排序算法小结
数据结构排序小结 数据结构排序小结 网上难得的
初学c数据结构的人指导适合,其结合c的数据结构
数据结构小结,陆续更新中,个人学习用,仅供参考而已
本文汇总了Python列表list一些常用的对象方法,可供初学者参考或查询,具体如下: 1.list.append(x) 把元素x添加到列表的结尾,相当于a[len(a):] =[x],代码如下: >>> a=[1,2,3,4,5] >>> a [1, 2, 3, 4, 5] ...
数据结构,总结数据结构,总结数据结构,总结数据结构,总结数据结构,总结数据结构,总结数据结构,总结数据结构,总结数据结构,总结
数据结构排序小结定义.pdf
这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解 ,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料 的能力。培养独立思考,深入研究,分析问题、解决...
小甲鱼数据结构与算法课件+源码,适合初学者学习
完整的数据结构设计报告 有封面,任务书,前言,需求分析,测试,小结,参考文献,等。
[数据结构与算法].王晓东.文字版。 第 章 引论 …………………………………… 算法及其复杂性的概念……………… 算法与程序 ………………………… 算法复杂性的概念 ………………… 算法复杂性的渐近性态 …………...
每章附带小结和适量的习题。上述特点使《数据结构导论》特别适合于自学。 《数据结构导论》可供计算机及其应用专业自学考试学生及专业人员使用,也可作为高等院校数据结构课程的教科书或参考书。
道01数据结构和算法绪论. mp402_谈谈算法. mp4 西03_时间复杂度和空间复杂度.mp404_时间复杂度和空间复杂度2.mp405_时间复杂度和空间复杂度3.mp4险06线性表. mp407_线性表2. mp408_线性表3. mp4品09_ 线性表4. mp...
数据结构和算法能起到什么作用? 数据结构的概述 算法的概述 一些定义 面向对象编程 软件工程 对于C++程序员的Java Java数据结构的类库 小结 问题 第2章 数组 Array专题Applet Java中数组的基础知识 将...
1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU...
Java数据结构和算法中文第二版(1) Java数据结构和算法中文第二版(2) 【内容简介】 本书可帮助读者: 通过由基于JAVA的演示所组成的可视专题讨论来掌握数据结构和算法 学会如何为常见和不太常见的编程条件选择...
Java数据结构和算法介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和队列、链表、...
DB2导出表结构小结