Java算法 -- 顺序表
顺序表结构定义:就是按照顺序存储方式存储的线性表
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; // 当前数组
}
- 初始化顺序表
- 获取顺序表的长度
- 往顺序表内插入数据
- 追加节点
- 删除节点
- 查找节点 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算法 -- 顺序表的更多相关文章
- java实现顺序表、链表、栈 (x)->{持续更新}
1.java实现节点 /** * 节点 * @luminous-xin * @param <T> */ public class Node<T> { T data; Node& ...
- 五种编程语言解释数据结构与算法——顺序表2(java与C++语言实现)
5.java实现方式: 5.1.顺序表的抽象结构 package com.xgp.顺序表; public interface MyList<T> { //1. initList(& ...
- 线性表 及Java实现 顺序表、链表、栈、队列
数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...
- Java实现顺序表
利用顺序存储结构表示的顺序表称为顺序表. 它用一组连续的地址存储单元一次存放线性表中的数据元素. 顺序表的实现是数据结构中最简单的一种. 由于代码中已经有详细注释,代码外不再阐述. 下次再陈上关于顺序 ...
- 数据结构——Java实现顺序表
一.分析 什么是顺序表?顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表.一个标准的顺序表需要实现以下基本操作: 1.初始化顺序表 ...
- (java实现)顺序表-ArrayList
什么是顺序表 顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构. 在使用顺序表存储数据前,会先申请一段连续的内存空间(即数组),然后把数组依次存入 ...
- 五种编程语言解释数据结构与算法——顺序表1(理论与C语言实现)
1.线性表的分类 2.线性表的定义及其基本操作 2.1.定义:线性表是具有相同类型的n(n>=0)个元素的有序序列,其中n为表长,当n=0时,该表为空表. 2.3.线性表的逻辑结构为: 2.4. ...
- 五种编程语言解释数据结构与算法——顺序表3(JavaScript与Python语言实现)
7.JavaScript语言实现 7.1.用ES6语法编写顺序表类 //1.创建类 class MyList { //1. initList(&L):初始化表.构造一个空的线性表.放回值应该是 ...
- Java数据结构——顺序表
一个线性表是由n(n≥0)个数据元素所构成的有限序列. 线性表逻辑地表示为:(a0,a1,…,an-1).其中,n为线性表的长度,n=0时为空表.i为ai在线性表中的位序号. 存储结构:1.顺序存储, ...
随机推荐
- 神奇的make自动生成include file的功能
嗯,今天研究公司makefile的代码,始终搞不明白有一段下载编译依赖的rule recipe(对这个名词不了解请参考make的官方文档)是怎么执行的.明明在执行的时候并指定的target并没有依赖那 ...
- Keil MDK 和 IAR 两款ARM开发工具区别比较
首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势.对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是 ...
- linux 进程通信 :流套接字
消息队列是可以实现没有共同关系的进程之间的通信.Socket则可以实现不同计算机的不同进程之间的通信. //地址的结构体 struct sockaddr_in{ short int sin_famil ...
- zookeeper的概念和基础
1.1ZooKeeper的使命 当开发人员使用ZooKeeper进行开发时,开发人员设计的那些应⽤往往可以看成成组连接到ZooKeeper服务器端的客户端,它们通过ZooKeeper的客户端API连接 ...
- STL源码剖析之组件
本篇文章开始,进行STL源码剖析的一些知识点,后续系列笔记全是参照<STL源码剖析>进行学习记录的 STL在现在的大部分项目中,实用性已经没有Boost库好了,毕竟STL中仅仅提供了一些容 ...
- url_encode and url_decode in Shell
之前写过一版 shell下解码url,下面给出另外一个版本 from https://gist.github.com/cdown/1163649 function urlencode() { loca ...
- IOS学习经验总结
学习ios有一段时间了,感觉有些盲目.有些迷茫,从网上收集了一些比人的学习经验,来参考. IOS学习经验总结--来自知乎网友 转自知乎:http://www.zhihu.com/question/20 ...
- iPhone与Android手机 各个型号的UserAgent
摘要:userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值.一般来讲,它是在navigator.appCodeName 的值之后加上斜线和navigator.a ...
- openLDAP 2
一.安装OPENLDAP 二.打开安装目录中的文件 slapd.conf 三.安装完成后退出 编辑文本,输入以下内容,并命名为test.ldif dn: dc=company objectClass: ...
- listener does not currently know of SID given in connect descriptor
一次连接数据库怎么也连接不上,查了多方面资料,终于找到答案,总结 首先应该保证数据库的服务启动 在myeclipse的数据库视图中点 右键->new 弹出database driver的窗口, ...