zoukankan      html  css  js  c++  java
  • 单链表入门--添加和遍历

       单链表的简单介绍

        我相信大部分人都知道单链表的结构,如下图所示:

        

         一个是数据域,一个是指针域用来存放下个节点的。

            单链表的添加和遍历

        

        首先心中要有上面这个图的结构,按照这个图的结构进行理解。

        头节点的作用是

          用来表示单链表的头,不存放具体数据。

        添加的理解

             分两种情况把。

          如果头节点的next指针为空,那就说明现在链表还是空的,添加的这个元素直接等于过去即可,伪代码如下

            if(head.next==null){

              head.next=node;

              return; 

            }

          如果头节点的.next不为空,就说明,链表中至少有一个节点,那么我们要用一个辅助变量来遍历链表。

          大概思路就是

          

          伪代码如下图所示(temp 指针现在指向的是节点1,如果判断节点1的next不为空,temp指针就等于节点1.next;以此类推。

          当判断出temp.next为空的时候,就跳出循环。temp.next=node;这样就续上了。

          Node temp=head.next;

          while(true){

            if(temp.next==null){

              break;

            }

            temp=temp.next;
          }

          temp.next=next;

        遍历的理解

          如果添加理解清楚了遍历也类似。

        下面是代码:

    public void Add(Node node){
            if(head.next==null){
                head.next=node;
                return;
            }
            Node temp=head.next;
            while (true){
                if(temp.next==null){
                    break;
                }
                temp=temp.next;
            }
            temp.next=node;
        }
    
        public void LookUp(){
            if(head.next!=null){
                Node temp=head.next;
                while (true){
                    if(temp==null){
                        break;
                    }
                    System.out.println(temp);
                    temp=temp.next;
                }
            }
        }

      测试代码:

           SingleLinkedList singleLinkedList=new SingleLinkedList();
             singleLinkedList.Add(new Node("节点1"));
             singleLinkedList.Add(new Node("节点2"));
             singleLinkedList.Add(new Node("节点4"));
             singleLinkedList.Add(new Node("节点3"));
             singleLinkedList.LookUp();

      

          

  • 相关阅读:
    LNMP安装了哪些软件?安装目录在哪?
    mysql导入数据大小设置方法
    JavaScript中的execCommand()命令详解及实例展示
    【燕山星云】三十而立,四十不惑...这是我看过最好人生的解读
    es6入门教程完整版
    Fisher's exact test( 费希尔精确检验)
    R语言中的箱图介绍 boxplot
    matlab 中保存某几个变量
    matlab 在代码中,显示错误,退出程序
    matlab 设置横纵坐标刻度的字体!!
  • 原文地址:https://www.cnblogs.com/gdouzz/p/14279776.html
Copyright © 2011-2022 走看看