在数据结构中,线性表分两种结构
顺序结构和链表结构
下面使用Java模拟一下顺序结构
主要难点在顺序结构的插入和删除

import java.util.ArrayList;//线性表顺序存储结构
public class LinearTable {ArrayList<Node> list;// 分配长度int maxLength = 0;// 实际长度int actualLength = 0;// 初始化public void initList(int i) {list = new ArrayList<Node>(100);maxLength = i;}// 判空public boolean isEmpty() {if (list.size() == 0) {return true;} else {return false;}}// 清空public void clear() {for (int i = 0; i < actualLength; i++) {list.get(i).item = "";}actualLength = 0;}// 定位指定元素 下标从0开始public int locate(Node node) {for (int i = 0; i < actualLength; i++) {if (node.item.equals(list.get(i).item)) {System.out.println("find!");return i;}}System.out.println("not find!");return -1;}// 返回实际长度public int getLenth() {return actualLength;}// 将元素插入到指定位置 下标从0开始public boolean insert(Node node, int index) {if (actualLength == maxLength) {return false;}if (index < 0 || index > actualLength) {return false;}for (int i = 0; i < (actualLength - index + 1); i++) {if (actualLength - i == actualLength) {// 最后的一个元素需要加进去 否则越界// list.get(actualLength);list.add(list.get(actualLength - 1));} else {// 元素后移 前一个元素值赋给后一个元素this.putNode(actualLength - i + 1, list.get(actualLength - i));}}putNode(index, node);actualLength++;return true;}public boolean remove(int index) {if (index < 0 || index > actualLength - 1) {return false;}// 直接后面覆盖前面即可 从前向后for (int i = 0; i < (actualLength - index - 1); i++) {this.putNode(index + i, list.get(index + i + 1));}actualLength--;return true;}public void addNode(Node node) {list.add(actualLength, node);actualLength++;}// 更换指定位置元素public void putNode(int index, Node node) {if (index > actualLength) {System.out.println("index error");return;}list.set(index, node);}public void show() {for (int i = 0; i < actualLength; i++) {System.out.println(list.get(i).item);}}public static void main(String[] args) {LinearTable table = new LinearTable();table.initList(10);System.out.println("is Empty? " + table.isEmpty());table.addNode(new Node("4"));table.addNode(new Node("3"));System.out.println("is Empty? " + table.isEmpty());table.addNode(new Node("2"));table.addNode(new Node("1"));table.addNode(new Node("0"));table.insert(new Node("1]ss"), 2);table.show();table.remove(0);table.remove(0);table.remove(0);System.out.println("after remove");System.out.println("locate" + table.locate(new Node("1")));System.out.println("lenght==" + table.getLenth());table.show();System.out.println("clear");table.clear();table.show();System.out.println("lenght==" + table.getLenth());}}

使用Java模拟线性表顺序存储结构相关推荐

  1. JAVA实现线性表顺序存储结构ArrayList

    线性表的顺序存储结构底层结构采用数组进行实现,主要方法包括元素在集合中的增删改查,核心方法是当添加元素前进行集合容量的判断并进行扩容处理.详见代码 优点:元素查找方便. 缺点:删除元素比较麻烦,需要移 ...

  2. 第三章 线性表---顺序存储结构

    线性表(List):零个或多个数据元素的有限序列. 若将线性表记为(a1, ..., ai-1, ai , ai+1 , ..., an),则表中 ai-1 领先于ai , ai领先于ai+1,称ai ...

  3. 线性表 :: 顺序存储结构的实现

    线性表 :: 顺序存储结构的实现 说明:本文属于读书笔记.笔者将以讲述的方式表达全片文章.故文中提到的某些字词是非正式术语,只是笔者本人的理解性词语. 线性表简介:想要了解点击此处 目录 顺序存储结构 ...

  4. 线性表定义 线性表顺序存储结构

    写在前面:本文章来自于在学习过程中的总结,供大家参考.因水平有限,博客中难免会有不足,恳请大佬们不吝赐教! 文章目录 线性表的定义 线性表的顺序存储结构 线性表顺序存储结构的优缺点 线性表的基本操作 ...

  5. 线性表顺序存储结构操作算法

    线性表顺序存储结构操作算法 ** 顺序表的初始化 线性表的插入算法 线性表的删除算法 线性表的查找算法** 根据书本的知识线性表顺序存储结构的操作算法其实是我们刚进入数据结构与算法的必修课 其实算法无 ...

  6. 线性表-顺序存储结构

    线性表-顺序存储结构 线性表基本概念: 线性结构的基本特征为: 集合中必存在唯一的一个"第一元素": 集合中必存在唯一的一个 "最后元素" : 除最后元素在外, ...

  7. 数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码

    数据结构严蔚敏C语言版-线性表顺序存储结构(顺序表)C语言实现相关代码 1.运行环境 2.准备工作 1)项目构建 1>新建一个SeqList项目 2>新建两个文件Sources和Heade ...

  8. 数据结构线性表顺序存储结构和主要算法实现

    (1) 线性表的定义. 零个或多个数据元素的有限序列 序列线性表中有直接后继元素,有且仅有一个直接后继,有且仅有一个直接前驱,数据元素之间的关系是一对一的关系 常用的List操作: Operation ...

  9. 线性表顺序存储结构图书管理

    线性表顺序存储结构图书管理 一开始看书里面的线性表的顺序存储结构,感觉简单,觉得动态链表才能做出一点东西,但是顺序存储不仅于此,也能做出来.顺序结构相比链式结构,内容上有较大差异,各有难点 文章目录 ...

最新文章

  1. 拉取数据_如何拉取公网RTSP/RTMP流在内网多客户端播放
  2. MFC创建及读写ini文件操作(转)
  3. python生成表达式_说说 Python 的生成器表达式
  4. servlet3.0异步处理
  5. 【OpenCV 例程200篇】72. 一维离散傅里叶变换
  6. 数据源Display方法
  7. 《FLUENT 14流场分析自学手册》——2.3 FLUENT14.5软件包的安装以及运行
  8. vcpkg Ubuntu安装
  9. Web聊天室历史记录解决方案(轻喷。。)
  10. python可以破解网站吗_python变相破解校园网 - 『编程语言区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...
  11. 高等数学在计算机领域的应用,计算机专业高等数学应用性改革探索论文
  12. JavaScript刷新当前页面的五种方式
  13. 【并发编程】CPU cache结构和缓存一致性(MESI协议)
  14. 亚马逊测评技术一定要懂得以下几点
  15. 计算机应用物联网应用技术论文,计算机应用技术论文:物联网垃圾回收站设计与实现...
  16. 世纪佳缘php查学历吗,爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?...
  17. 数独的生成算法和解题算法
  18. 一台电脑如何开俩虚拟机_一台电脑两个系统怎么实现?虚拟机安装系统了解一下...
  19. 数据结构实验报告,二叉树的基本操作(C语言)
  20. Android 优秀文章收集整理集合

热门文章

  1. python的except之后还运行吗_python except异常处理之后不退出,如何解决异常继续执行...
  2. python 扫描枪_python 之serial、pyusb 使用开发
  3. python2 csv 中文_Python 2.6中对csv文件的常规Unicode / UTF-8支持
  4. java程序设计_十分钟说课—Java程序设计(耿祥义)
  5. dhclient常用命令
  6. Linux—Ubuntu14.0.5配置JAVA环境
  7. 【转】pthread_cond_signal 虚假唤醒问题
  8. IBatisNet XML 特殊配置
  9. PHP百度收录量查询接口源码,PHP百度收录量查询接口源码
  10. 计算机求是科学班2020年招生,浙江大学2020年三位一体综合评价招生分析:取消笔试,名额增加...