Java实现单向链表】的更多相关文章

一.前言 最近在回顾数据结构与算法,有部分的算法题用到了栈的思想,说起栈又不得不说链表了.数组和链表都是线性存储结构的基础,栈和队列都是线性存储结构的应用- 本文主要讲解单链表的基础知识点,做一个简单的入门-如果有错的地方请指正 二.回顾与知新 说起链表,我们先提一下数组吧,跟数组比较一下就很理解链表这种存储结构了. 2.1回顾数组 数组我们无论是C.Java都会学过: 数组是一种连续存储线性结构,元素类型相同,大小相等 数组的优点: 存取速度快 数组的缺点: 事先必须知道数组的长度 插入删除元…
结点类: /** * @author zhengbinMac * 一个OnelinkNode类的对象只表示链表中的一个结点,通过成员变量next的自引用方式实现线性表中各数据元素的逻辑关系. */ public class OnelinkNode { // 保存结点的值 public int data; // 保存后继结点的引用 public OnelinkNode next; // 构造值为k的结点 public OnelinkNode(int k) { data = k; next = nu…
单向链表 作者:vashon package com.ywx.link; /** * 单向链表 * @author vashon * */ public class LinkTest { public static void main(String[] args) { Link l=new Link(); l.addNode("A"); l.addNode("B"); l.addNode("C"); l.addNode("D"…
/* 先定义一个Node类用来存储节点的值域和指针域 * 即当前节点中的值和后面节点的方法 * 在C中就是相当与定义一个结构体类型一个数据域和指针域的方法 */class LNode{//这个写法已经非常固定了 设置两个属性分别用set函数和get函数来得到这两个属性 private int data; private LNode next;//这个和String应该比较相似的用法,类名用来表示数据类型,表示next的数据类型也是节点 public void setData(int data){…
package cn.com.factroy2; /** * 可以看做是操作链表的工具类,链表的核心结构就是节点的数据结构 * @author wanjn * */ public class SinglyLinkedList { //存放头结点 private Node head; //存放尾节点 private Node last; //链表长度 private int size = 0; /** * 默认在最后添加元素 * @param data */ public void add(Obj…
class List<T> { private class Node { private T data; private Node next; private Node(T data) { if(data != null) this.data = data; } private void add(T data) { if(this.next == null) this.next = new Node(data); else this.next.add(data); } private void…
public class LinkedListTest { public static void main(String[] args) { Node A = new Node("A"); Node B = new Node("B"); Node C = new Node("C"); Node D = new Node("D"); Node E = new Node("E"); Node F = new N…
单向链表与顺序表的区别在于单向链表的底层数据结构是节点块,而顺序表的底层数据结构是数组.节点块中除了保存该节点对应的数据之外,还保存这下一个节点的对象地址.这样整个结构就像一条链子,称之为"链表" 我们可以推理出单向链表和顺序表这两种数据结构特性对其本身操作的影响: 1.对读和改的影响:对于底层为数组的顺序表来说,读取(改写)数据是通过arr[n]的方式.而对于链表来说,操作第n个节点的数据必须要从第0个节点开始获取下一个节点的对象地址,直到第n个,如果运气不好要获取最后一个节点的数据…
JAVA单向链表实现 单向链表 链表和数组一样是一种最常用的线性数据结构,两者各有优缺点.数组我们知道是在内存上的一块连续的空间构成,所以其元素访问可以通过下标进行,随机访问速度很快,但数组也有其缺点,由于数组的内存是一次性申请的,就像基本数据类型一样,一次性申请所需的空间,在数据量变动很大的时候就容易导致预先申请的内存不够或内存浪费.在者就是在存的是有序数列时进行数据插入会比较麻烦,所以链表就是为了弥补数组的不足的一种数据结构.相反的,链表对于变动很大的数据有很大的适应性,而且其对于数据插入和…
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始. 链式存储结构的线性表将采用一组任意的存储单元存放线性表中的数据元素.由于不需要按顺序存储,链表在插入.删除数据元素时比顺序存储要快,但是在查找一个节点时则要比顺序存储要慢 使用链式存储可以克服顺序线性表需要预先知道数据大小的缺点,链表结构可以充分利用内存空间,实现灵活的内存动态管理.但是链式存储失去了数组随机存取的特点,同时增加了节点的指针域,空间开销较大. 下图就是最简单最一般的单向链表:…