顺序表结构定义:就是按照顺序存储方式存储的线性表

 1.定义一个顺序表的基本数据:

 static final int MAXLEN = 100;

     Class Student{
private String number; //学生学号
private String name; // 学生姓名
private int age; // 学生年龄
} Class SLT{
Student[] ListData = new Student[MAXLEN]; // 定义一个Student数组来存放学生
int ListLen; // 当前数组
}
 
2.对顺序表的操作
    **注意判断临界点的情况
  • 初始化顺序表
  • 获取顺序表的长度
  • 往顺序表内插入数据
  • 追加节点
  • 删除节点
  • 查找节点   1)查找节点   2)查找对应学号的节点
  • 显示所有节点
  // 1)初始化顺序表
public void initSLT(SLT sl){
sl.ListLen = 0;
}
// 2)获取顺序表长度
public int SLlength(SLT sl){
return sl.ListLen;
}
// 3)往顺序表中插入节点
public boolean insertSLT(SLT sl , int n , Student stu){
boolean judge = false;
if(n<0 || n>sl.ListLen -1){
SYSO("插入数据点位置编号不对");
return false;
}
if(sl.ListLen > MAXLEN){
SYSO("顺序表已经满了");
return false;
}
for(int i=0;i<sl.ListLen-1;i++){
if( i == n){
//n+ 的部分往后移
for(int j=sl.ListLen-1 ;j>n; j -- ){
sl.ListData[j] = sl.ListData[j-1];
}
}
}
sl.ListData[n] = stu;
sl.ListLen ++;
return true;
}
// 4)追加节点
public boolean STLAdd(STL sl,Student stu){ if(sl.ListLen > MAXLEN){
SYSO("顺序表已满,不能添加");
return false;
} sl.ListData[sl.ListLen + 1 ] = stu; } // 5) 删除节点
public boolean STLDelte(STL sl , int n ){
if(n<0 || n>sl.ListLen -1){
SYSO("插入数据点位置编号不对");
return false;
}
if(sl.ListLen<=0){
SYSO("顺序表中没有数据可以删除");
return false;
}
for(int i=0;i<sl.ListLen-1;i++){
if(i == n){
for(int j=n;j<sl.ListLen;j++){
sl.ListData[j]= sl.ListData[j+1]
} }
sl.ListLen --; }
}
// 6)查找节点
public Data searchDataByNumber(STL sl , String number){
int i;
if(i=1 ;i<SL.ListLen;i++){
if(sl.ListData[i].number.equal(number)){
return sl.ListData[i];
}else
{
return null;
}
}
}
// 7)显示所有节点
public void STLAll(STL sl){
int i;
for(i=0;i<sl.ListLen -1 ;i++){
SYSO("输出书友节点的内容");
} }
 

Java算法 -- 顺序表的更多相关文章

  1. java实现顺序表、链表、栈 (x)->{持续更新}

    1.java实现节点 /** * 节点 * @luminous-xin * @param <T> */ public class Node<T> { T data; Node& ...

  2. 五种编程语言解释数据结构与算法——顺序表2(java与C++语言实现)

    5.java实现方式: 5.1.顺序表的抽象结构 package com.xgp.顺序表; public interface MyList<T> { //1. initList(& ...

  3. 线性表 及Java实现 顺序表、链表、栈、队列

    数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...

  4. Java实现顺序表

    利用顺序存储结构表示的顺序表称为顺序表. 它用一组连续的地址存储单元一次存放线性表中的数据元素. 顺序表的实现是数据结构中最简单的一种. 由于代码中已经有详细注释,代码外不再阐述. 下次再陈上关于顺序 ...

  5. 数据结构——Java实现顺序表

    一.分析 什么是顺序表?顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表.一个标准的顺序表需要实现以下基本操作: 1.初始化顺序表 ...

  6. (java实现)顺序表-ArrayList

    什么是顺序表 顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构. 在使用顺序表存储数据前,会先申请一段连续的内存空间(即数组),然后把数组依次存入 ...

  7. 五种编程语言解释数据结构与算法——顺序表1(理论与C语言实现)

    1.线性表的分类 2.线性表的定义及其基本操作 2.1.定义:线性表是具有相同类型的n(n>=0)个元素的有序序列,其中n为表长,当n=0时,该表为空表. 2.3.线性表的逻辑结构为: 2.4. ...

  8. 五种编程语言解释数据结构与算法——顺序表3(JavaScript与Python语言实现)

    7.JavaScript语言实现 7.1.用ES6语法编写顺序表类 //1.创建类 class MyList { //1. initList(&L):初始化表.构造一个空的线性表.放回值应该是 ...

  9. Java数据结构——顺序表

    一个线性表是由n(n≥0)个数据元素所构成的有限序列. 线性表逻辑地表示为:(a0,a1,…,an-1).其中,n为线性表的长度,n=0时为空表.i为ai在线性表中的位序号. 存储结构:1.顺序存储, ...

随机推荐

  1. python的socket编程之udp编程

    在上篇文章中,仅仅讲述了如何进行了TCP编程,在本章中,将讲述使用udp进行编码,先看如下的代码,服务器端: root@python 513]# cat serverudp.py #!/usr/bin ...

  2. 修改android Studio SDK 路径产生的问题(模拟器不能启动了)

    原因:将 c:\user\admin\appdata\android\sdk 修改为 F:\AndroidProgram\Sdk 原来的虚拟机不能用了,要新建虚拟机才可以.

  3. 「小程序JAVA实战」小程序视图之细说列表渲染(14)

    转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-14/ 列表的渲染,不管是任何语言都有列表这个概念.源码:https://github.com/li ...

  4. JAVA_01

    Java局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁: 访问修饰符不能用于局部变量: 局部变量只在声明它 ...

  5. MVC项目不同域之间的UrlRouting

    一.DomainAction,方便生成不同域下的url 1.新建3个MVC项目,一个公用类库WebCore Demo.WebApplication0 绑定域名 www.demo.com demo.co ...

  6. css常用属性总结第二弹:id选择器

    承接上一篇class选择器,这一篇我们来说说css的id选择器. id选择器类似于类选择器,不过也有一些重要的差别,首先,id选择器前面有一个#号----称它为棋牌号吧,class为点号,用法就和cl ...

  7. Vertex and fragment programs

    [Vertex and fragment programs] When you use vertex and fragment programs (the so called "progra ...

  8. Invoke and BeginInvoke(转载:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html)

    一.为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己. 1 ...

  9. Codeforces 667C DP

    题意:给你一个字符串,这个字符串的构造方法如下:先选择一个长度大于4的前缀,然后每次向字符串尾部添加一个长度为2或者长度为3的后缀,不能添加连续的相同的后缀,问可能的后缀有哪些?并按字典序输出去. 思 ...

  10. ansible介绍与安装

    一.什么是ansible ansible是python中一套模块,系统中的一套自动化工具,可以用来作系统管理.自动化命令等任务. 二.ansible优势 .ansible是Python中一套完整的自动 ...