首页 > 其他分享 >线性表的顺序表示

线性表的顺序表示

时间:2023-01-06 19:12:46浏览次数:43  
标签:表示 顺序 return 线性表 int length SqList data

顺序表的定义

线性表的顺序存储又称顺序表.它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使逻辑上相邻的两个元素在物理位置上也相邻。

public class InitList<E> {// 定义线性表	
		int MaxSize = 50;
		Object[] data = new Object[MaxSize];
		int length = 0;
			
		public Boolean Insert(Object e,int i) {// 定义插入方法
			if(i < 1 || i > MaxSize) {
				return false;
			}// 判断i的范围是否有效
			if (length >= MaxSize) {
				return false;
			}// 当前存储已满,不能插入
			for (int j = length;j >= i;j--) {
				data[j] = data[j-1];
			}// 将第i个元素及之后的元素后移
			data[i -1 ] = e;//在位置i处放e
			length++;// 线性表长度加1
			return true;
		}
		
		public Boolean Delete(int i) {// 定义删除方法
			if(i < 1 || i > length) {
				return false;
			}// 判断i的范围是否有效
			System.out.println(data[i - 1]);
			for(int j = i; j <length ;j++) {
				data[j-1] = data[j];
			}// 将第i个位置后的元素前移
			length--;// 线性表长度减1
			return true;
		}
		
		public int LocateElem(Object e) {// 按值查找
			for(int i = 0; i < length ; i++) {
				if(data[i] == e) {
					return  i+1;
				}
			}
			return 0;
		}
		
		public void Printf() {// 输出线性表
			System.out.println("打印成功");
			for(int i = 0 ; i < length ; i++){
				System.out.print(data[i]);
			}
			System.out.println();
		}	
}

顺序表的使用

public static void main(String[] args) {
		// TODO Auto-generated method stub
		InitList<String> SqList = new InitList<>();
		SqList.Insert("a",1);
		SqList.Printf();
		
		SqList.Delete(1);
		SqList.Printf();
		
		if (SqList.LocateElem("a") > 0) {
			System.out.println(SqList.LocateElem("a"));
		}else {
			System.out.println("查找失败");
	 	}
	}

标签:表示,顺序,return,线性表,int,length,SqList,data
From: https://www.cnblogs.com/Fighter-CTN/p/17031385.html

相关文章

  • 顺序结构及if选择结构
    顺序结构JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行......
  • Linux 中正则表达式() 表示将括号中的内容看作一个整体。
      () 将括号中的内容视为一个整体。001、测试:[root@pc1test]#lsa.txt[root@pc1test]#cata.txt##测试数据123abc456123abcab......
  • C++实现有序表--顺序表的合并操作代码
    #include<iostream>#include<cstdlib>//C++动态分配存储空间usingnamespacestd;#defineOK1#defineERROR0#defineMAXSIZE100typedefintElemtype;typedefintStat......
  • linux中正则表达式 {n} 表示匹配前面的项n次
     001、{n};  匹配之前的项n次;   [0-9]{3}能够匹配任意的三位数,[0-9]{3}可以扩展为[0-9][0-9][0-9]。 测试:[root@pc1test]#lsa.txt[root@pc1test]#......
  • 顺序表
    顺序表在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化......
  • 最小表示法学习笔记
    假设我们有一个字符串\(s\),下标从\(1\)到\(n\),我们将字符串复制一遍接在尾部,设新的字符串为\(ss\),对于\(1\leqi\leqn\)显然有\(ss_i=ss_{i+n}\)。对于\(1\leq......
  • 顺序表
    1.静态分配#defineMaxSize10typedefstruct{ElemTypedata[MaxSize];intlength;}SqList2.动态分配#defineInitSize10typedefstruct{ElemTyp......
  • SICP:符号求导、集合表示和Huffman树(Python实现)
    绪论到目前为止,我们已经使用过的所有复合数据,最终都是从数值出发构造起来的(比如我们在上一篇博客《SICP2.2:层次性数据和闭包性质(Python实现)》所介绍的链表和树就基于......
  • 顺序表的基本操作与重要思想
    本文的主要内容是高度总结顺序表的两种具体模型(线性顺序表、链式顺序表)的基本操作和一般操作套路。什么是基本操作?根据这篇文章(数据结构(DataStructure)的基本思想是增删......
  • 面试官:Docker 有几种网络模式?5 年工作经验都表示答不上来。。
    本文作者:知知行行本文链接:https://www.cnblogs.com/loronoa/p/16566818.htmldocker容器网络Docker在安装后自动提供3种网络,可以使用dockernetworkls命令查看[root@l......