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();

      

          

  • 相关阅读:
    Node.js 函数
    Node.js模块系统
    在Apache服务器上安装SSL证书
    Node.js Stream(流)--文件操作
    HTML5自带验证美化
    HTML5约束验证API
    Node.js Buffer(缓冲区)
    Python 练习:简单的购物车(二)
    Python 练习:简单的购物车
    Python 列表操作
  • 原文地址:https://www.cnblogs.com/gdouzz/p/14279776.html
Copyright © 2011-2022 走看看