美文网首页Java数据结构
Java 数据结构 循序表

Java 数据结构 循序表

作者: Sheldonlv | 来源:发表于2019-04-03 20:59 被阅读5次

@[TOC](Java 数据结构-循序表)

数据结构 复习记录

初次编写博客,希望以后也能养成这种习惯,话不多说,下面来介绍一下循序表是什么。

循序表介绍

循序表 就是按照循序存储方式存储的线性表
该线性表结点按照逻辑次序依次放置在计算机的一组连续的存储单元当中

话不多说,直接上图

循序存储结构
我们可以直接看出,其实顺序存储结构就是我们平常使用到的数组
接下来我会用代码来演示如何实现顺序存储

使用Java实现循序表结构

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

package arraylist;

import java.util.Map;

/**
 * 顺序表简单实现
 * Created by Sheldon on 2019/3/29.
 * Project Name: alstudy.
 * Package Name: arraylist.
 */
 
// 数据对象
class Data{
    String key;
    String name;

    Data(String key, String name){
        this.key = key;
        this.name = name;
    }
}

// 循序表
public class ArrList {

    // 默认最大长度
    int Max = 100;
    // 对象数组
    Data[] ListData = new Data[Max];
    // 当前长度
    int ListSize;

    // 链表初始化
    ArrList(){
        ListSize = 0;
    }

    // 获取顺序表大小
    public int linkSize(){
        return ListSize;
    }

    // 链表容量检测 true(满了) false(没满)
    public boolean isFull(ArrList list){
        if (list.ListSize >= list.Max){
            return true;
        }else {
            return false;
        }
    }

    // 追加结点
    public boolean addNode(ArrList list, Data data){
        // 检测链表容量
        if (isFull(list)){
            return false;
        }
        // 在数据尾部插入
        list.ListData[list.ListSize++] = data;
        return true;
    }

    // 插入结点
    public boolean insertNode(ArrList list, int index, Data data){
        // 检测链表容量
        if (isFull(list)){
            return false;
        }
        // 查看下标是否越界
        if (index<0 || index>=list.ListSize){
            return false;
        }
        // 条件达成,则在对应位置插入数据
        list.ListData[index] = data;
        return true;
    }

    // 删除结点
    public boolean delNode(ArrList list, int index){
        // 查询结点是否越界
        if (index<0 || index>=list.ListSize){
            return false;
        }
        // 删除对应结点,数据向前位移
        for (int i=index; i < list.ListSize; i++){
            list.ListData[i] = list.ListData[i+1];
        }
        list.ListSize--;
        return true;
    }

    // 查找结点
    public void findNode(ArrList list, int index){
        // 查询结点是否越界
        if (index<0 || index>=list.ListSize){
            System.out.println("下标越界");
        }
        // 打印出数据
        System.out.println("key:"+list.ListData[index].key+" name:"+list.ListData[index].name+"\n");
    }

    // 显示所有结点
    public void findAllNode(ArrList list){
        for (int i=0; i<list.ListSize; i++){
            System.out.println("key:"+list.ListData[i].key+" name:"+list.ListData[i].name);
        }
    }

    // 测试代码
    public static void main(String[] args) {
        // 创建循序表数组对象
        ArrList list = new ArrList();
        // 添加结点
        list.addNode(list, new Data("1","小明"));
        list.addNode(list, new Data("2","小红"));
        list.addNode(list, new Data("3","小兵"));
        // 查询结点数量
        System.out.println(list.linkSize());
        // 打印单个结点
        list.findNode(list, 1);
        // 打印出所有结点
        list.findAllNode(list);
        // 删除结点
        list.delNode(list, 1);
        // 获取结点数量
        System.out.println(list.linkSize());
        // 打印所有结点
        list.findAllNode(list);
        // 修改其中一个结点
        list.insertNode(list, 0, new Data("1","小红"));
        // 再次打印查看
        list.findAllNode(list);
    }
}

运行结果:


在这里插入图片描述

相关文章

  • Java 数据结构 单向链表

    Java 数据结构 单向链表 基础介绍 链表与循序表都是同属于数据结构中顺序表中的一种,而它与循序表的不同就在于 ...

  • Java 数据结构 循序表

    @[TOC](Java 数据结构-循序表) 数据结构 复习记录 初次编写博客,希望以后也能养成这种习惯,话不多说,...

  • josephus问题

    线性表是数据结构的中很常见的结构,其中一种就是顺序表,python已经内置了顺序表。list就是循序表的的实现。下...

  • Java核心类库—— 数据结构

    Java核心类库-------数据结构体系图 1.数据结构 2.栈 3.哈希表

  • Java工程师面试题

    JavaOOP Java的数据结构有哪些? 线性表(ArrayList) 链表(LinkedList) 栈(Sta...

  • Java数据结构和算法概览

    Java数据结构和算法概览 数据结构 线性数据结构:常见的有一维数组,线性表,栈,队列,双队列,串。 非线性数据结...

  • 数据结构之Java List

    本文从线性数据结构顺序表与链表开始分析Java中ArrayList与LinkedList的实现,最后对Java L...

  • ArrayList源码学习(1)

    数据结构定义 从数据结构的角度来说,ArrayList是线性表基于java的顺序表示和实现,数据结构中定义其是一组...

  • 散列表

    散列表又名哈希表,这种数据结构也是在日常开发中使用非常频繁的数据结构。如Java使用HashMap,TreeMap...

  • Java集合框架

    Java 集合工具包位于 Java.util 包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表...

网友评论

    本文标题:Java 数据结构 循序表

    本文链接:https://www.haomeiwen.com/subject/hqytiqtx.html