zoukankan      html  css  js  c++  java
  • 线性表

    顺序存储线性表(数组实现)

    public class Sqlist {
    
        static int [] table;
        static int n;
        
        public Sqlist(int n)
        {
            table=new int[n];
            this.n=0;
        }
        
        public boolean isEmpty()
        {
            return n==0;
        }
        
        public boolean isFull()
        {
            return n>=table.length;
        }
        
        public int getcapacity()
        {
            return table.length;
        }
        
        public int getlength()
        {
            return n;
        }
        
        //ADD
        public void addElem(int loc,int value)
        {
            if(n>=table.length)
            {
                System.out.println("数组满了");
            }
            if((loc<1)||(loc>table.length))
            {
                System.out.println("插入位置错误");
            }
            if(loc<=n+1)
            {
                for(int i=n-1;i>=loc;i--)
                {
                    table[i+1]=table[i];
                }
                table[loc-1]=value;
                n++;
                System.out.println("插入成功,在第"+loc+"个位置之前插入:"+value);
            }
            
        }
        
        //DELETE
        public int getElem(int i)
        {
            if((i<1)||(i>table.length))
            {
                return -1;
            }
            else {
                return table[i-1];
            }
        }
    }

    链式存储 单链表 (头插法、尾插法)

    import java.util.Random;
    
    
    //结点
    public class ListNode {
    
        public int value;
        public ListNode next;
        public ListNode(int data)
        {
            this.value=data;
        }    
        
    }
    
    
    class MySinglelinkedList
    {
        private static ListNode head;
        private static ListNode tail;
        private static int length=0;
        
        public void init()
        {
            
        }
        
        public void print()
        {
            ListNode temp=head;
            while (temp!=null) {
                System.out.println(temp.value);
                temp=temp.next;
            }
        }
        
        
        
        
        //头插法
        public void addNode()
        {
            Random random=new Random();
            head=null;
            for(int i=0;i<20;i++)
            {
                int temp=random.nextInt(100);
                ListNode newNode=new ListNode(i);
                length++;
                if(head==null)
                {
                    head=newNode;
                }
                else {
                    newNode.next=head.next;
                    head.next=newNode;
                }
            }
        }
        
        
        //尾插法
        public void addNode1()
        {
            tail=head=null;
            for(int i=0;i<20;i++)
            {
                ListNode newNode=new ListNode(i);
                length++;
                if(head==null)
                {
                    head=tail=newNode;
                }
                else
                {
                    tail.next=newNode;
                    tail=newNode;
                }
            }
        }
        
    }
  • 相关阅读:
    拷贝构造函数的用法
    虚基类的用法
    函数模板的用法,以及类外定义的注意事项
    怎么学好python?
    树状数组单点更新和区间查询
    线段树的基本操作
    快排算法的实现
    react-redux 中 connect 的常用写法
    ant-design表单处理和常用方法及自定义验证
    ionic 签名、打包
  • 原文地址:https://www.cnblogs.com/Maskisland/p/10048850.html
Copyright © 2011-2022 走看看