文档章节

java实现线性顺序表

西皇小明
 西皇小明
发布于 2015/12/06 14:22
字数 390
阅读 17
收藏 0
/**
 * 
 * 线性顺序表
 */
public class SequentialLinearList {

 private char[] list;
 private int length;// 实际长度
 private int size;// 容量

 /**
  * 初始化顺序表,长度为length
  */
 public SequentialLinearList(int size) {
 this.size = size;

 length = 0;
 list = new char[size];
 }

 /**
  * 将index位置赋值为c,会覆盖掉原值
  * 
  * @param index
  * @param c
  */
 public void set(int index, char c) {
 if (index > size - 1 || index < 0) {
 System.out.println("out of size exception!");
 return;
 } else {
 if (get(index) == 0)
 length++;
 list[index] = c;
 }
 }

 /**
  * 取得下标为index的值,如果为空返回ascii为零的字符
  * 
  * @param index
  * @param c
  * @return
  */
 public char get(int index) {
 if (index > size - 1 || index < 0) {
 System.out.println("out of size exception!");
 return 0;
 } else {
 return list[index];
 }
 }

 /**
  * 在index位置插入c,不会覆盖掉原值
  * 
  * @param index
  * @param c
  */
 public void insert(int index, char c) {
 if (index > size - 1 && index < 0) {
 System.out.println("out of size exception!");
 return;
 } else if (length >= size) {
 System.out.println("insert into full list exception!");
 return;
 } else if (get(index) == 0) {
 set(index, c);
 } else {
 for (int i = length - 1; i >= index; i--) {
 list[i + 1] = list[i];
 }
 set(index, c);
 length++;
 }
 }

 /**
  * 返回长度
  * 
  * @return
  */
 public int length() {
 return length;
 }

 /**
  * 删除下标为index的元素
  * 
  * @param index
  */
 public void delete(int index) {
 if (index > length - 1 || index < 0) {
 System.out.println("delete not exist element exception");
 } else {
 for (int i = index; i < length - 1; i++) {
 list[i] = list[i + 1];
 }
 list[length - 1] = 0;
 length--;
 }
 }

 /**
  * 查找c元素,返回第一个找的c元素的下标,没有找到返回-1
  * 
  * @param c
  */
 public int findChar(char c) {
 for (int i = 0; i < length; i++) {
 if (list[i] == c) {
 return i;
 }
 }
 return -1;
 }

 public void show() {
 for (int i = 0; i < length; i++) {
 System.out.print(list[i] + ",");
 }
 System.out.println();
 }

 public static void main(String[] args) {
 SequentialLinearList sll = new SequentialLinearList(10);
 sll.set(0, 'a');
 sll.set(1, 'b');
 sll.set(2, 'c');
 sll.set(3, 'd');
 sll.set(4, 'e');
 sll.show();
 sll.insert(2, 'f');
 sll.show();
 sll.delete(2);
 sll.show();
 System.out.println(sll.length());
 System.out.println(sll.findChar('c'));
 sll.set(0, 'z');
 sll.show();
 }

}


© 著作权归作者所有

西皇小明
粉丝 6
博文 40
码字总数 20601
作品 0
海淀
程序员
私信 提问
数据结构(java版)学习笔记(一)——线性表

一、线性表的定义 线性表是n(n>=0)个具有相同特性的数据元素的有限序列。 线性表是最简单、最常用的一种数据结构 线性表属于线性结构的一种 如果一个数据元素序列满足: (1)除第一个和最...

Stars-one
2018/07/29
0
0
Java实现栈Stack_栈内部使用数组存储结构

Java实现栈Stack_栈内部使用数组存储结构 抽象数据类型栈的定义: 栈(stack),是限定在表尾进行插入或删除操作的线性表,因此对栈来说表尾有其特殊的含义,称为栈顶,相应的,表头端称为栈...

秋风醉了
2014/09/14
185
0
数据结构——Java实现顺序栈

一、分析   栈是限定仅在表尾进行插入或删除操作的线性表,对于栈来说,表尾端称为栈顶,表头端称为栈底,栈的修改是按照后进先出的原则进行的,因此又称为后进先出的线性表。   顺序栈是...

牛cattle
04/26
0
0
数据结构——Java实现顺序表

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

牛cattle
04/19
0
0
在 Hibernate 中直接操作 JDBC 接口

简介: Hibernate 在处理多表关联及分组排序等复杂数据库查询操作时,其固有的 O-R 映射机制会产生大量冗余 SQL 操作,系统性能比传统的 JDBC 低很多。本文分析了 Hibernate 产生此类问题的原...

红薯
2010/04/16
790
2

没有更多内容

加载失败,请刷新页面

加载更多

《JAVA核心知识》学习笔记 (21. JAVA 算法)

21. JAVA 算法

Shingfi
6分钟前
2
0
redis 命令

redis 秒杀用到的 原子锁 :$redis->decr('jili_reward_goods_stock_' . $gifts_id) redis 秒杀用到的原子锁在秒杀过程中库存量增加 $redis->incrBy('key1', 10); redis 键查看重复:$redis-......

小小小壮
6分钟前
2
0
像智能手机一样管理云端应用:阿里云联合微软全球首发开放应用模型(OAM)

2019 年 10 月 17 日上午 9 点 15 分,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟在 QCon 上海《基于云架构的研发模式演进》主题演讲中,正式宣布: “今天,我们同微软联合发布...

阿里巴巴云原生
15分钟前
3
0
SpringBoot配置数据源

默认数据源 Springboot默认支持4种数据源类型,定义在 org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 中,分别是: org.apache.tomcat.jdbc.pool.DataSource......

Gx_ww
19分钟前
3
0
Java应用在docker环境配置容器健康检查

在《极速体验docker容器健康》一文已体验了docker容器健康检查功能,今天就来给java应用的容器加入健康检查,使应用的状态随时都可以被监控和查看。 实战环境信息 操作系统:macOS Catalina ...

程序员欣宸
20分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部