顺序表的优点:

  1. 随机存取元素方便,根据定位公式容易确定表中每个元素的存储位置,所以要指定第i个结点很方便
  2. 简单,直观

顺序表的缺点:

  1. 插入和删除结点困难
  2. 扩展不灵活,难以确定分配的空间
  3. 容易造成浪费

顺序表的实现:

这里我简单说一下吧,Sqlist类实现了ListIntf接口,也就是我们上一节中所提到的接口,之后eclipse中就会提示我们复写ListIntf中的方法,我们根据顺序表的特点,逐一复写即可

详情看注释吧~

PS:所有的参数i都是序号,从1开始

import java.util.Scanner;public class SqList implements ListIntf{final int maxlen = 1000; //线性表中可容纳最多数据元素数目String v[] = new String[maxlen];int len =0;//len是长度,1开始,是位序号/*** * @return 返回线性表中可容纳最多数据元素数目*/int getmaxlen(){return maxlen;}public SqList(){//构造方法中实现相关的接收数据操作Scanner sc = new Scanner(System.in);int n;String[] a = new String[maxlen];System.out.println("请输入需要的数据个数:");n=sc.nextInt();sc.close();for(int i=0;i<n;i++){a[i] = "a"+i;//a[0]的数值是 a0,a[1]的数值是a1,以此类推……
            }setData(a);}/*** 将String数组a赋值给String数组v* @param String数组*/public void setData(String[] a){v = a;}@Overridepublic int size() {return len;}@Overridepublic void clear() {v = new String[maxlen];}@Overridepublic boolean isEmpty() {return len==0;}@Overridepublic String get(int i) {return v[i-1];}@Overridepublic int indexOf(String s) {int i;for(i=0;i<len;i++){if(v[i].equals(s)){return i+1;}}System.out.println("顺序表中不存在该元素!!");return 0;}@Overridepublic String getPre(String s) {//当前是顺序表,是顺序存储结构,无需实现此方法return null;}@Overridepublic String getNext(String s) {//当前是顺序表,是顺序存储结构,无需实现此方法return null;}@Overridepublic void insertElementAt(String s, int i) {//首先判断顺序表是否已满,其次判断i是否合法,之后再进行插入操作if(len==maxlen){System.out.println("顺序表已满!");return;//结束判断,跳出判断语句}else{if(i<1||i>len){System.out.println("输入的序号不合法!");return;}else{for(int j=len-1;j>=i-1;j--){v[j+1]=v[j];}v[i-1] =s;  len++;return;}}}@Overridepublic String remove(int i) {String string;if(i<1||i>len){System.out.println("输入序号不合法!");return null;}else{string = v[i-1];for(int j=i-1;j<len;j++){v[j-1] = v[j];}len--;return string;}}@Overridepublic String remove(String s) {// TODO Auto-generated method stub
        String string;for(int i=0;i<len;i++){if(v[i].equals(s)){string = v[i];remove(i+1);//这里的i是索引(下标),索引(下标)加1成为序号return string;}}System.err.println("当前顺序表中没有该元素");return null;}}

转载于:https://www.cnblogs.com/kexing/p/9387708.html

数据结构(java版)学习笔记(二)——线性表之顺序表相关推荐

  1. Java基础学习笔记(二)_Java核心技术(进阶)

    本篇文章的学习资源来自Java学习视频教程:Java核心技术(进阶)_华东师范大学_中国大学MOOC(慕课) 本篇文章的学习笔记即是对Java核心技术课程的总结,也是对自己学习的总结 文章目录 Jav ...

  2. 微信公众号开发-Java版学习笔记

    微信公众号开发整体不难,主要是熟悉微信公众号常用的一些接口文档,然后会一门后端语言(比如java)即可. 罗召勇老师教程:微信公众号开发-Java版(蓝桥罗召勇) 微信公众号文档:微信公众号官方文档 ...

  3. java jvm学习笔记二(类装载器的体系结构)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao                  在了解java虚拟机的类装载器之前,有一个概念我们是必须先知道的,就是java的沙箱, ...

  4. sql必知必会(第四版) 学习笔记二 视图

    本书用到的几个表的建表sql语句如下: --销售产品供应商 CREATE TABLE Vendors (vend_id varchar(20) not null,vend_name varchar(5 ...

  5. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(二)之Introduction to Objects...

    The genesis of the computer revolution was a machine. The genesis of out programming languages thus ...

  6. Java脚本学习-笔记二

    jsp中的除了标签script里面的内容外,其他的都是直接输出的,而script里的内容是执行的过程,只是把最终的结果输出. 看如下的例子: 例1输出结果为: var answer='Yes I am ...

  7. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)

    如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...

  8. 《Real-Time Rendering》第四版学习笔记——Chapter 9 Physically Based Shading(二)

    上接文章:<Real-Time Rendering>第四版学习笔记--Chapter 9 Physically Based Shading(一) 六.微观几何 每个可见的表面点都包含了很多 ...

  9. Java学习笔记二:数据类型

    Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...

  10. ASP.NET MVC 2 学习笔记二: 表单的灵活提交

    ASP.NET MVC 2 学习笔记二:  表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...

最新文章

  1. 微信小程序扫描二维码
  2. Python 类对象及属性内置方法 classmethod、delattr、dir、hasattr、getattr、callable
  3. 如何使ResNet优于EfficientNet?
  4. java 手机音频播放,用Java实现音频播放
  5. android 反编译apktool工具
  6. LeetCode刷题之旅
  7. 【PC工具】推荐11个在四大使用场景中的常用工具,按场景总结常用电脑工具软件,常用办公工具软件...
  8. 单链表反转的原理和python代码实现
  9. 前端基础1:HTML常用标签
  10. java基础----Java Collections Framework
  11. python入门:输出1-100之内的所有奇数和偶数
  12. win10、win8/8.1、win7系统激活工具-----也可激活Office各版本
  13. 基于51单片机的手机电话拨号盘模拟protues仿真
  14. 使用基于迭代的敏捷创建里程碑
  15. Unity Metaverse(六)、关于Avatar换装系统的示例工程
  16. JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识...
  17. Jpeg-9e源码编译(Win10,VS2022)
  18. 计算机excel还原,『怎么还原电脑自带的excle』excel表格保存过了怎么恢复原来的数据...
  19. 即时聊天的一些解决方案
  20. 【渝粤教育】广东开放大学 数据库应用 形成性考核 (26)

热门文章

  1. ACCESS数据库增强器需求及介绍
  2. 【Linux】详解Linux中3个文件查找相关命令
  3. 【推荐系统】智能推荐算法在直播场景中的应用
  4. Linux基本命令之grep命令常见用法
  5. 字节跳动和OPPO:机器翻译等智能时代算法技术如何落地?
  6. 【每日算法Day 108】一道简单的二叉树题目,写法还是挺多的。
  7. 【每日算法Day 96】腾讯面试题:合并两个有序数组
  8. NLP学习—14.Pointer Generator Network(指针)及代码实现
  9. python——item()返回可遍历的(键,值)元组数据
  10. 《流畅的Python第二版》读书笔记——字典和集合