常用数据结构-线性表

1、线性表(列如:链表、数组)

    链表的分为单向链表与双向链表(LinkList)数组(ArrayList)

package com.data.structure.list;

import java.util.List;

/**
 * 单向链表
 * @Author: wushuai
 * @Date: 2019/8/15 13:47
 * @Description:
 */
public class LinkList {

    /**
     * 插入头部
     * @param p
     * @param head
     */
    public static void insertHead(Node p, Node head){
        if(p==null){
            return;
        }
        p.setNext(head);
        head = p;
    }
    /**
     * 插入尾部
     * @param p
     * @param nodes
     */
    public static void insertTail(Node p, Node head){
        if(null==head){
            return;
        }
        Node temp = head.getNext();
        while (temp.getNext() !=null){
            temp = temp.getNext();
        }
        temp.setNext(p);
    }


    /**
     * 插入中间
     * @param newNode
     * @param pre
     * @param next
     */
    public static void insertMiddle(Node newNode, Node pre,Node next){
       Node temp = next;
       pre.setNext(newNode);
       newNode.setNext(temp);
    }

    /**
     * 循环遍历所有节点data
     * @param current
     */

    public static void map(Node current){
        //遍历单向链表
//        if(null==head){
//            return;
//        }
//        System.out.print(head.getValue() + "  ");
//        if (head.getNext() !=null){
//            //递归
//            LinkList.map(head.getNext());
//        }
        //第二种方法:迭代输出,直到next为null时!
//        while (current !=null){
//            System.out.print(current.getValue() + "  ");
//            current = current.getNext();
//        }


        do{
            Node next = current.getNext();
            System.out.print(current.getValue() + "  ");
            current = next;
        }while (current !=null);


    }

    public static void main(String[] args) {
        Node head = new Node("1");
        Node node2 = new Node("2");
        Node node3 = new Node("3");
        Node node4 = new Node("4");
        head.setNext(node2);
        node2.setNext(node3);
        node3.setNext(null);
//        LinkList.map(node1);

//        LinkList.map(node1);
        Node newNode = new Node("0");
        //插入头部
        insertHead(newNode,head);
        map(newNode);

        //插入中间
//        LinkList.insertMiddle(newNode,node2,node3);
//        LinkList.map(head);

    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据结构是计算机科学中重要的概念,而线性是其中一个常见的数据结构。CSDN作为一个知名的技术平台,提供了丰富的关于数据结构线性的学习资源。 首先,数据结构是一种组织和存储数据的方式。线性是一种简单而常用数据结构,它由多个数据元素按照一定的顺序组成。线性中的数据元素之间存在一对一的关系,即每个元素只有一个直接前驱和一个直接后继。 在CSDN上,我们可以找到大量关于数据结构线性的教程、文章和博客。这些资源不仅仅介绍了线性的基本概念和特点,还提供了各种不同类型线性的实现方式和应用场景。通过学习这些内容,我们可以深入理解线性的原理和操作,并掌握如何在实际编程中有效地应用线性。 另外,CSDN上还提供了很多与线性相关的代码示例和项目案例。这些示例可以帮助我们更好地理解线性的具体实现过程,在实际编程中有一定的参考价值。此外,我们还可以通过CSDN上的技术论坛或者博客互动,与其他技术人员交流经验,共同解决在线性实现过程中遇到的问题。 总而言之,CSDN作为一个知名的技术平台,对于学习数据结构中的线性具有重要的参考价值。通过CSDN上提供的学习资源、代码示例和讨论互动,我们可以更好地理解线性的概念和实现方式,并能够在实际编程中灵活地应用线性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值