zoukankan      html  css  js  c++  java
  • 单链表

    线性结构---链表

    线性结构

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

    线性结构有两种不同的存储结构:(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;
    	}
    
  • 相关阅读:
    System.BadImageFormatException: Could not load file or assembly
    MSSQL数据库索引的应用
    快递api网接口快递调用方法
    winform的扩展的带有截图功能picturebox
    免费api大全
    C#使用百度API通过IP获取地理位置和坐标
    用淘宝ip地址库查ip
    开源相关社区/项目一览(备查,欢迎补充)(转)
    .NET系列文章——近一年文章分类整理,方便各位博友们查询学习(转)
    设计模式--状态模式C++实现
  • 原文地址:https://www.cnblogs.com/mankaixin/p/13817684.html
Copyright © 2011-2022 走看看