zoukankan      html  css  js  c++  java
  • 数组存储和链表存储

    数据结构

    数组实现

    思想,存入Objiect类每存入一次就for一次,当数组不够的时候需要判断然后扩容

    实现增删改查

    package cn.jiedada._02inArray;
    
    import java.util.Arrays;
    
    /*
     * 存入任意数据
     * 扩容object类的大小
     * 打印我们想要的内容
     * 实现增删改查
     * */
    public class inArray {
        Object[] date;
        int indexsize=0;
        int captipy;
        //调用自己的方法
        public inArray() {
            this(5);
        }
        public inArray(int captipy) {
            this.captipy=captipy;
            date=new Object[captipy];
        }
        public void add(Object obj){
            //对数组进行扩容
            if(indexsize>date.length-1){
                Object[] newdate=new Object[indexsize+20];
                System.arraycopy(date, 0, newdate, 0, indexsize);
                date=newdate;
            }
            date[indexsize]=obj;
            indexsize++;
        }
        /*覆写String
         * */
        @Override
        public String toString() {
            Object[] object = new Object[indexsize];
            System.arraycopy(date, 0, object, 0, indexsize);
            return Arrays.toString(object);
        }
        private void judje(int index) {
            /*if(index<0|index>indexsize){
                System.out.println("请输入正确的数"+indexsize);
            }*/
            if(index<0|index>indexsize)
            throw new ArrayIndexOutOfBoundsException("请输入正确的数0~"+indexsize);
        }    //查询
        public Object selectElemple(int index){
            judje(index);
            return date[index];
        }
        //查询
        public int selectNameElement(String name){
            for(int i=0;i<date.length;i++){
                if(date[i].equals(name)){
                    return i;
                }
            }
            return -1;
        }
        //删除
        public void deleteElement(int index){
            judje(index);
            System.arraycopy(date, index+1, date, index,indexsize-index-1);
            indexsize--;    
        }
        public void deleteElement(String name){
            int index = selectNameElement(name);
            deleteElement(index);
        }
    
    }
    View Code

    链表实现

    定义:一个需要储存的数据和一个链表对象的下一个值查询需要遍历,通过该类名 next来存放下一个位置的地址值,

    package cn.jiedada._03LinkList;
    
    public class LinkList {
        Node frist;//创建头指针
        public void add(Object object){
            Node node = new Node(object);
            //判断是否有头指针
            if(frist==null){
                frist=node;
            }else{
                Node temp=frist;
                //循环遍历下一个结点,找到最后一个节点
                while(temp.next!=null){
                    temp=temp.next;
                }
                //存入值
                temp.next=node;
            }
        }
        @Override
        public String toString() {
            StringBuilder stringBuilder = new StringBuilder("[");
            Node temp;
            temp=frist;
            if(temp==null){
                return null;
            }
            //需要循环遍历,因为先要判断是否有值,如果没有值直接退出
            while(temp!=null){
                //判断下一个是不是空值。
            if(temp.next!=null){
                stringBuilder.append(temp.object).append(",");
                //为什么在这不能temp=temp.next;
            }else{
                stringBuilder.append(temp.object).append("]");
            }
            temp=temp.next;
        }
            return stringBuilder.toString();
        }
        
    }
    //链表的址值
    class Node{
        Object object;
        Node next;//存放下一个地址值
        public Node() {
            // TODO Auto-generated constructor stub
        }
        public Node(Object obj) {
            this.object=obj;
        }
    }
    View Code
  • 相关阅读:
    Dot Net WinForm 控件开发 (七) 为属性提下拉式属性编辑器
    WinForm 程序的界面多语言切换
    c#遍历HashTable
    Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器
    Dot Net WinForm 控件开发 (六) 为属性提供弹出式编辑对话框
    Dot Net WinForm 控件开发 (一) 写一个最简单的控件
    Dot Net WinForm 控件开发 (四) 设置属性的默认值
    Dot Net WinForm 控件开发 (二) 给控件来点描述信息
    Dot Net WinForm 控件开发 (八) 调试控件的设计时行为
    Dot Net WinForm 控件开发 (五) 复杂属性的子属性
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/11302565.html
Copyright © 2011-2022 走看看