0
点赞
收藏
分享

微信扫一扫

Oracle 如何定自增长数字列

凉夜lrs 2024-06-07 阅读 7

🔒文章目录:

1.❤️❤️前言~🥳🎉🎉🎉

2.ArrayList的缺陷

3.链表的概念及结构

4.无头单向非循环链表的实现 

4.1成员属性

4.2成员方法

         createList 

display——打印链表 

addFirst——头插

 addLast——尾插

 size——获取单链表长度

addIndex——在任意位置插入 

 contains——判定是否包含某个元素

remove——删除第一次出现关键字为key的结点

 removeAll——删除所有值为key的结点 

clear——清空单链表 

 4.3完整代码及使用

  完整代码 

  完整代码的使用

5.总结


 1.❤️❤️前言~🥳🎉🎉🎉

2.ArrayList的缺陷

3.链表的概念及结构


 注意:

1.从上图可看出,链式结构在逻辑上是连续的,但是在物理上不一定连续

2.其结点一般都是从堆上申请出来的

3.从堆上申请的空间,是按照一定的策略来分配的,两次申请的空间可能连续,也可能不连续


4.无头单向非循环链表的实现 

4.1成员属性

​
public class SingleLinkedList {
    static  class  ListNode{
      public   int value;
      public   ListNode next;

        public ListNode(int value) {
            this.value = value;
        }
    }
   public ListNode head;

​

 4.2成员方法

  createList 

display——打印链表 

addFirst——头插

 addLast——尾插

 size——获取单链表长度

addIndex——在任意位置插入 

 contains——判定是否包含某个元素

remove——删除第一次出现关键字为key的结点

 removeAll——删除所有值为key的结点 

clear——清空单链表 

 4.3完整代码及使用

  完整代码 

public class SingleLinkedList {
    static  class  ListNode{
      public   int value;
      public   ListNode next;

        public ListNode(int value) {
            this.value = value;
        }
    }
   public ListNode head;

    public void createList(){
        ListNode listNode1 = new ListNode(45);
        ListNode listNode2 = new ListNode(46);
        ListNode listNode3 = new ListNode(50);
        ListNode listNode4 = new ListNode(56);
        ListNode listNode5 = new ListNode(67);
        listNode1.next=listNode2;
        listNode2.next=listNode3;
        listNode3.next=listNode4;
        listNode4.next=listNode5;
        head=listNode1;
    }
  public void display(){
    ListNode cur=head;
    while(cur!=null){
        System.out.print(cur.value+" ");
        cur=cur.next;
    }
      System.out.println();
 }

public int size(){
        int count=0;
        ListNode cur=head;
        while(cur!=null){
         cur=cur.next;
         count++;
        }
        return count;
    }
public void  contain(int key){
        ListNode cur=head;
        while(cur!=null){
            if(cur.value==key){
                System.out.println(true);
                return;
            }
            cur=cur.next;
        }
    System.out.println(false);
}

  

    public void  addFirst(int a){
    ListNode listNode = new ListNode(a);
    listNode.next=head;
    head=listNode;
}
public void  addLast(int a){
    ListNode listNode = new ListNode(a);
    ListNode cur=head;
   if(head==null){
       head=listNode;
       return;
}
    while(cur.next!=null){
       cur=cur.next;
    }
    cur.next=listNode;
}

public void addIndex(int index,int a){
        if(head==null){
            ListNode listNode = new ListNode(a);
            head=listNode;
            return;
        }
        if(index<0||index>size()){
            System.out.println("位置不合法");
            //这里就不搞抛出异常了,我们简单点
            return;
        }
        if(index==0){
            addFirst(a);
            return;
        }
        if(index==size()){
            addLast(a);
            return;
        }
    ListNode listNode = new ListNode(a);
    ListNode cur=head;
    for (int i = 0; i <index-1 ; i++) {
          cur=cur.next;
    }
     listNode.next=cur.next;
     cur.next=listNode;
}

public void remove(int key){
        ListNode cur=head;
        if(head==null) {
            System.out.println("为空链表,不能进行删除操作");
            return;
        }
        if(cur.value==key) {
            head=head.next;
            return;
        }
        while(cur.next!=null){
            if(cur.next.value==key){
             cur.next=cur.next.next;
             return;
            }
           cur=cur.next;
        }
        System.out.println("不存在该数");
}

    public void removeAll(int key){
        if(this.head == null) {
            System.out.println("为空链表,不能进行删除操作");
            return;
        }
        ListNode cur = head;
        while(cur.next != null){
            if(cur.next.value == key){
                cur.next=cur.next.next;
            }
            else {
                cur = cur.next;
            }}

        if(head.value==key){
            head = head.next;
                }
            }

       public void clear(){
           head=null;
           }

    }

  完整代码的使用

public class Test {
    public static void main(String[] args) {
        SingleLinkedList singleLinkedList = new SingleLinkedList();
        singleLinkedList.createList();
        singleLinkedList.display();
        System.out.println(singleLinkedList.size());
        singleLinkedList.contain(45);
        singleLinkedList.addFirst(12);
        singleLinkedList.addLast(67);
        singleLinkedList.addIndex(3, 22);
        singleLinkedList.display();
        singleLinkedList.remove(22);
        singleLinkedList.remove(12);
        singleLinkedList.display();
        singleLinkedList.removeAll(67);
        singleLinkedList.display();

        System.out.println("=======================");
        singleLinkedList.clear();//清空该链表
        singleLinkedList.display();
        System.out.println("已清空该链表");
        System.out.println("=======================");
    }}

5.总结

举报

相关推荐

0 条评论