Java算法 -- 顺序表

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

 1 1.定义一个顺序表的基本数据:
 2
 3 static final int MAXLEN = 100;
 4
 5     Class Student{
 6     private String number; //学生学号
 7     private String name; // 学生姓名
 8     private int age; // 学生年龄
 9 }
10
11     Class SLT{
12     Student[] ListData = new Student[MAXLEN];  // 定义一个Student数组来存放学生
13     int ListLen;     // 当前数组
14 }

2.对顺序表的操作

**注意判断临界点的情况

  • 初始化顺序表
  • 获取顺序表的长度
  • 往顺序表内插入数据
  • 追加节点
  • 删除节点
  • 查找节点   1)查找节点   2)查找对应学号的节点
  • 显示所有节点
 1  // 1)初始化顺序表
 2     public void initSLT(SLT sl){
 3         sl.ListLen = 0;
 4 }
 5    // 2)获取顺序表长度
 6 public int SLlength(SLT sl){
 7     return sl.ListLen;
 8 }
 9    // 3)往顺序表中插入节点
10     public boolean insertSLT(SLT sl , int n , Student stu){
11     boolean judge = false;
12     if(n<0 || n>sl.ListLen -1){
13      SYSO("插入数据点位置编号不对");
14     return false;
15 }
16        if(sl.ListLen > MAXLEN){
17         SYSO("顺序表已经满了");
18         return false;
19 }
20         for(int i=0;i<sl.ListLen-1;i++){
21             if( i == n){
22              //n+ 的部分往后移
23             for(int j=sl.ListLen-1 ;j>n; j -- ){
24              sl.ListData[j]  = sl.ListData[j-1];
25 }
26 }
27 }
28     sl.ListData[n] = stu;
29     sl.ListLen ++;
30     return true;
31 }
32    // 4)追加节点
33      public boolean STLAdd(STL sl,Student stu){
34
35     if(sl.ListLen > MAXLEN){
36     SYSO("顺序表已满,不能添加");
37     return false;
38 }
39
40     sl.ListData[sl.ListLen + 1 ] = stu;
41
42 }
43
44    // 5) 删除节点
45    public boolean STLDelte(STL sl , int n ){
46      if(n<0 || n>sl.ListLen -1){
47          SYSO("插入数据点位置编号不对");
48         return false;
49     }
50     if(sl.ListLen<=0){
51     SYSO("顺序表中没有数据可以删除");
52     return false;
53 }
54     for(int i=0;i<sl.ListLen-1;i++){
55     if(i == n){
56     for(int j=n;j<sl.ListLen;j++){
57     sl.ListData[j]= sl.ListData[j+1]
58 }
59
60 }
61     sl.ListLen --;
62
63 }
64 }
65     // 6)查找节点
66     public Data searchDataByNumber(STL sl , String number){
67     int i;
68     if(i=1 ;i<SL.ListLen;i++){
69     if(sl.ListData[i].number.equal(number)){
70     return sl.ListData[i];
71 }else
72     {
73     return null;
74 }
75 }
76 }
77    // 7)显示所有节点
78        public void STLAll(STL sl){
79         int i;
80         for(i=0;i<sl.ListLen -1 ;i++){
81         SYSO("输出书友节点的内容");
82     }
83
84 }
时间: 2024-10-03 04:14:43

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

JAVA模拟顺序表新增,模拟单链表新增

最近在回顾大学学的数据结构,这里给大家用java模拟顺序表和单链表的新增 1顺序表新增 /** * 顺序表 * * @author cjd * */ public class ArrayList { private Object[] elementData; // 底层是一个数组,目前还没有确定长度 private int size; // 不是数组分配了几个空间,而是元素的个数 public ArrayList() { this(4); } public ArrayList(int initi

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

数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值,至少在一段时间之后,技术可以很快得到提高.同时,它也是软考的重点,我们需要对这部分的内容进行一下总结. 我们先看一下数据结构和算法的整体内容. 1.线性表 概念: 数据元素的排列方式是线性的. 分类: 分类规则是根据上图中元素的存储结构来划分的. (1)顺序表 基本思想:元素的存储空间是连续的.在内

Java实现顺序表

利用顺序存储结构表示的顺序表称为顺序表. 它用一组连续的地址存储单元一次存放线性表中的数据元素. 顺序表的实现是数据结构中最简单的一种. 由于代码中已经有详细注释,代码外不再阐述. 下次再陈上关于顺序表的循环队列和顺序栈的代码. 1 package 线性表.顺序表.普通数组; 2 3 /** 4 * ArrayList 顺序表 5 * JAVA 3.0 6 * 抛异常处理错误的下标 7 * 使用泛型,当然如果要替换成Object也是可以替换 8 */ 9 public class ArrayLi

java实现顺序表结构

package com.hephec; import java.util.Arrays; public class SequenceList<T>{ //以指定长度的数组来创建顺序线性表 //@param element 指定顺序线性表中的第一个元素 //@param initSize 指定顺序线性表底层数组的长度 private int DEFAULT_SIZE = 16; //保存数组的长度 private int capacity; //定义一个数组用于保存顺序线性表的元素 privat

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

一.分析 什么是顺序表?顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表.一个标准的顺序表需要实现以下基本操作: 1.初始化顺序表 2.销毁顺序表 3.清空顺序表 4.检测顺序表是否为空 5.返回顺序表的元素个数 6.返回顺序表中指定位置元素的值 7.返回顺序表中第一个与指定值相同的元素的位置 8.返回指定元素的直接前驱 9.返回指定元素的直接后继 10.向指定位置插入元素 11.删除指定位置的元素 12.遍历顺序表 在Java

Java 3:顺序表的操作

顺序表常见操作有插入.删除.查找.修改.一.插入:1.插入有头插.尾插.任意位置插入.在插入时要注意下标的取值在顺序表长度范围内.所以最好在插入之前进行扩容操作.2.在头插时要注意先将原数组的元素从后往前依次向后移动.因为如果从前往后开始移动的话,会造成后一个元素被前一个元素覆盖,而丢失数据且造成重复.arr[i+1]=arr[i],注意此处i的意思是要移动的元素的下标.3.任意位置插入与头插类似,从后往前(要插入的位置元素下标)依次向后移动,再将数据插入二.删除1.删除有头删.尾删.任意位置删

(java实现)顺序表-ArrayList

什么是顺序表 顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构. 在使用顺序表存储数据前,会先申请一段连续的内存空间(即数组),然后把数组依次存入内存,中间没有一点空隙. 基本操作 每个数据结构都有集合对数据处理的方法,这能让我们更方便的使用保存在数据结构中的数据.顺序表的基本操作有:增(add),删(remove),改(set),查(find),插(insert)等. 在这里我们只详细讲解remove 和 insert 操作,其他实现可看下

嵌入式菜鸟算法②---顺序表操作

主要内容:顺序表插入.删除 #include <stdio.h> #include <stdlib.h> #define MAXSIZE 1024 typedef int datatype; typedef struct { datatype data[MAXSIZE]; int last; // subscript of linear list's last node,i.e. length is n = last + 1 }sequenlist; /* linear list

数据结构与算法 顺序表 链表

内存 计算机的作用 用来存储和运算二进制的数据 衡量计算机内存大小的单位: bit(位): 字节:8bit kb:1024字节 mb:1024kb 问题:计算机如何计算1+2? 必须先在计算机的内存开辟内存空间 才将对应的数值存储到该内存中 变量的概念 a = 10 在计算机中表示的含义(内存图) 内存空间开辟好了之后,每一块内存空间都会有两个默认的属性 内存空间的大小:算机内存大小的单位 内存空间的地址:十六进制的数值 地址作用:用来定位(追踪)指定内存空间,就可以获取该内存空间中存储的数据