单链表

线性结构---链表

线性结构

线性结构是比较常见的数据结构,特点是数据元素之间存在一对一的的线性关系

线性结构有两种不同的存储结构:(1)顺序存储结构 (2)链式存储结构

线性结构常见的有:数组,队列,链表,和栈

链表

链表是有序的列表,但是他在内存中的存储如下

image-20201014162923447
  • 链表是以节点方式存储
  • 如图:链表的各个节点不一定连续存储
  • 单链表的逻辑结构示意图:
  • image-20201014163302819

使用带Head头的单向链表实现 - 学生成绩排行榜管理,完成对学生的增删改查操作

//定义StudentNode , 每个StudentNode 对象就是一个节点
class StudentNode {
	public int no;
	public String name;
	public String score;
	public HeroNode next; //指向下一个节点
	//构造器
	public StudentNode(int no, String name, String score) {
		this.no = no;
		this.name = name;
		this.score = score;
	}
	//为了显示方法,我们重新toString
	@Override
	public String toString() {
		return "StudentNode [no=" + no + ", name=" + name + ", score=" + score + "]";
	}
	
}

创建学生SingleLinkedList来管理成员

class SingleLinkedList{
    //先初始化一个头节点,头结点不要动,不存方数据
    private StudentNode head = new SudentNode(0,"","");
    
    //返回头节点
	public StudentNode getHead() {
		return head;
	}

   

在尾部添加节点

//添加节点到单向链表
    //1,找到当前链表的最后节点
    //2.将最后的一个节点next指向新的节点
   public void add(StudentNode studentNode) {
		
		//因为head节点不能动,因此我们需要一个辅助遍历 temp
		StudentNode temp = head;
		//遍历链表,找到最后
		while(true) {
			//找到链表的最后
			if(temp.next == null) {//
				break;
			}
			//如果没有找到最后, 将将temp后移
			temp = temp.next;
		}
		//当退出while循环时,temp就指向了链表的最后
		//将最后这个节点的next 指向 新的节点
		temp.next = studentNode;
	}
原文地址:https://www.cnblogs.com/mankaixin/p/13817684.html