基础知识:

线性表(linear list),是其组成元素间具有线性关系的一种线性结构。

线性表有

①顺序存储结构(sequential storage structure)

顺序存储结构可以简单的理解利用为 数组 的形式来进行保存数据。

②链式存储结构(chained storage structure)

链式存储结构中包括 单链表 和 双链表

注意:顺序数组必须保证逻辑关系(logical relationship)和存储关系(storage relationship)必须连续。

下面就介绍关于单链表的创建与输出方法:package practice;

import java.util.*;

class Node//建一个链表类

{

public int data;//设置一个简单的内部元素

Node next;

//********新建链表*******

public static Node creat(int n)

{

Scanner input = new Scanner(System.in);

Node head = null, p = null, q = null;//头结点初始化

for(int i = 0; i < n; i++)

{

p = new Node();//这一步很重要!为下一个结点申请新的空间,否则就会报空指针的错误!

p.data = input.nextInt();

if(head == null) head = p;//保证了头结点的内容不为空

else q.next = p;//向后延续

q = p;

}

q.next = null;//这一步也很重要,保证了最后一个结点的下个结点为null,以便其他方法的实现

input.close();

return head;

}

//********输出链表********

public static void put(Node head)//传入头结点

{

Node p = head;

while(p != null)//注意判断条件

{

System.out.print(p.data+"");

p = p.next;//下一个结点

}

}

//******链表计数器*******

public static int length(Node head) //链表计数器的原理和输出链表一样

{

int l = 0;

Node p = head;

while(p != null)

{

l++;

p = p.next;

}

return l;

}

}

public class Line

{

public static void main(String[] args)

{

Scanner input = new Scanner(System.in);

//新建一个链表

System.out.println("请输入新建链表的长度");

int n = input.nextInt();

System.out.println("请输入链表中数据:");

Node head1 = Node.creat(n);

Node.put(head1);

System.out.println();

System.out.println("计算该链表的长度为:" + Node.length(head1));

input.close();

}

}

上述单链表的操作涉及到三个量,head,p,q

head 是作为链表的索引,一旦单链表在操作过程中head丢失,那么这个链表也就丢失了

p 通常用来执行下一个结点的相关操作(比如传入数据等)

q通常用来建立新节点与上一个结点的指向关系

具体的关系如下:

java单链表输出_数据结构基础------1.线性表之单链表的创建与输出方法(Java版)...相关推荐

  1. 线性表算法题库_数据结构与算法(线性表)练习题

    .word 资料 . 三.写一个算法合并两个已排序的线性表. (用两种方法:数组表示的线性表(顺序表)和 指针表示的线性表(链表) ) 要求: 1 .定义线性表节点的结构,并定义节点的型和位置的型. ...

  2. C++数据结构02--链式线性表(单链表的实现)

    头文件: //实现链式线性表 #include "stdafx.h" using namespace std;typedef int DataType; //将数据类型设为int类 ...

  3. 人们通常先在线性表尾部临时添加一个_数据结构学习笔记-线性表

    我们经常会处理一系列类型相同的数据, 创建这种元素组, 读取和修改 当我们处理一个具有有穷或者无穷的元素数据集的时候, 我们需要将其作为一个整体来管理和使用, 用变量去表示它们, 传入和传出函数等等. ...

  4. 数据结构基础:线性表学习笔记

    1.线性表定义 线性表是指n个元素的有限序列(n>=0),通常用(a1,a2,a3...,an),来表示. 2.线性表特点 1.存在唯一的一个首元素 2.存在唯一一个尾元素 3.除第首元素外,每 ...

  5. 【数据结构基础】-线性表的顺序实现(数组实现)基本操作

    2019.10.10 [数据结构-线性表的顺序结构] 基本操作:初始化,判断是否空表,清空表,获取表中的第i个元素,查找元素,插入元素,删除元素,获取表的元素个数. 抽象数据类型: #include ...

  6. C++线性表(单链表)的应用算法(附源码)

    C++线性表(单链表)的应用算法 线性表(单链表)的应用算法: 构造一个递增有序的正整数链表,实现链表分解为一个奇数表和一个偶数表,之后再将两个链表合并一个递减链表. 运行截图 代码实现 /* 线性表 ...

  7. 【数据结构基础】线性数据结构——栈和队列的总结及封装(C和java)

    前言 数据结构,一门数据处理的艺术,精巧的结构在一个又一个算法下发挥着他们无与伦比的高效和精密之美,在为信息技术打下坚实地基的同时,也令无数开发者和探索者为之着迷. 也因如此,它作为博主大二上学期最重 ...

  8. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...

    本文已经收录自 https://github.com/Snailclimb/JavaGuide  (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...

  9. 【数据结构基础】线性数据结构——线性表概念 及 数组的封装(C和Java)

    前言 数据结构,一门数据处理的艺术,精巧的结构在一个又一个算法下发挥着他们无与伦比的高效和精密之美,在为信息技术打下坚实地基的同时,也令无数开发者和探索者为之着迷. 也因如此,它作为博主大二上学期最重 ...

最新文章

  1. 分布式系统 一致性模型的介绍 以及 zookeeper的 “线性一致性“ 讨论
  2. ASP.NET Core 中的 startup类
  3. 以太网数据包、IP包、TCP/UDP 包的结构(转)
  4. caffe windows 学习第一步:编译和安装(vs2012+win 64)
  5. .NET深入实战系列—Linq to Sql进阶
  6. php手机电子相册,免费电子相册制作软件 手机电子相册制作软件
  7. JEECG 树列表操作总刷新列表,需要重新展开问题 【官方补丁,适用所有版本】
  8. 今日恐慌与贪婪指数为40 恐慌程度有所上升
  9. 电子模块 001 --- 遥杆 JoyStick
  10. 12月第三周各国域名总量榜:中国729万居全球第二
  11. 添加icon_(icon)冬季检查保养篇
  12. tomcat配置项目的接种方式
  13. C++对象数组 —— 学生信息表
  14. 常用命令之svnadmin命令
  15. android 动画编辑器,开机动画编辑器 BootanimationEditor
  16. jQuery,JS实现自定义鼠标右键菜单
  17. 用redis统计页面的访问量
  18. git pull之后出现REBASE(1/1)
  19. 比特率 波特率 数据传输速率 区别
  20. HTML文字溢出出现.....

热门文章

  1. R语言dplyr包mutate_if函数修改所有满足条件的数据列的内容实战
  2. Python使用matplotlib可视化绘图时你可用的颜色有哪些?把色彩可视化出来自己选好了
  3. 框架+重量级+轻量级
  4. monocle3包的安装
  5. java里面怎么导入sql文件_java将SQL文件导入到数据库
  6. GAN的统一架构与WGAN
  7. 计算机学院会会,学生分会——计算机学院学生会
  8. No module named ‘win32gui’ 以及 No module named ‘win32console’解决办法
  9. VOC2012 分割数据 转 lmdb 格式 python 代码
  10. LeetCode 141. Linked List Cycle--面试编程题--C++,Python解法