Java数据结构线性表中插入、删除、查询、成串、查找等操作
来源:互联网 发布:数控车床编程入门实例 编辑:程序博客网 时间:2024/06/09 05:42
主要是关于一些对线性表的操作,包括插入、删除、查询、成串、查找等操作,下面是程序代码:
SeqLis.java
public class SeqList<T> implements LList<T>
{ //顺序表类,实现线性表接口
private Object[] element;//对象数组,私有成员
private int len; //顺序表长度
public SeqList(int size)
{
this.element = new Object[size];
this.len = 0;
}
public SeqList()
{
this(64);
}
public boolean isEmpty() //判断顺序表是否为空
{
return this.len==0;
}
public int length() //返回顺序表的长度
{
return this.len;
}
public T get(int i)
{
if (i>=0 && i<this.len)
return (T)this.element[i];
return null;
}
public void set(int i, T x)
{
if (x==null)
return;
if (i>=0 && i<this.len)
this.element[i] = x;
else
throw new IndexOutOfBoundsException(i+"");
}
public String toString()
{
String str="(";
if (this.len>0)
str += this.element[0].toString();
for (int i=1; i<this.len; i++)
str += ", "+this. element[i].toString();
return str+") ";
}
public void insert(int i, T x) //插入段代码
{
if (x==null)
return;
if (this.len==element.length)
{
Object[] temp = this.element;
this.element = new Object[temp.length*2];
for (int j=0; j<temp.length; j++)
this.element[j] = temp[j];
}
if (i<0)
i=0;
if (i>this.len)
i= this.len;
for (int j=this.len-1; j>=i; j--)
this.element[j+1] = this.element[j];
this.element[i] = x;
this.len++;
}
public void append(T x)
{
insert(this.len, x);
}
public T remove(int i)
{
if (this.len==0 || i<0 || i>=this.len)
return null;
T old = (T)this.element[i];
for (int j=i; j<this.len-1; j++)
this.element[j] = this.element[j+1];
this.element[this.len-1]=null;
this.len--;
return old;
}
public void removeAll()
{
this.len=0;
}
public boolean equals(Object obj)
{
if(this==obj)
return true;
if(obj instanceof SeqList)
{
SeqList<T> list=(SeqList<T>)obj;
if(this.length()==list.length())
{
for(int i=0;i<this.length();i++)
if(!this.get(i).equals(list.get(i)))
return false;
return true;
}
}
return false;
}
//以下代码属于顺序表的顺序查找内容
public int indexOf(T key)
{
if(key!=null)
for(int i=0;i<this.len;i++)
if(this.element[i].equals(key))
return i;
return -1;
}
public T search(T key)
{
int find=this.indexOf(key);
return find==-1?null:(T)this.element[find];
}
public boolean contain(T key)
{
return this.indexOf(key)>=0;
}
}
下面是线性表接口:
LList.java
public interface LList<T> //线性表接口
{
boolean isEmpty(); //判断线性表是否为空
int length(); //返回线性表长度
T get(int i); //返回第i号元素
void set(int i, T x); //设置第i号元素值为x
void insert(int i, T x); //插入x作为第i号元素
void append(T x); //在线性表最后插入元素x
T remove(int i); //删除第i号元素并返回被删除的元素
void removeAll(); //删除线性表所有元素
T search(T key); //查找,返回首次出现关键字为key的元素。
}
接下来是一些对线性表的操作:
text.java
public class text{
public static void main(String args[])
{
SeqList<String> s=new SeqList<String>(5);
//成串、求长度、判断是否为空
//在下面添加代码
s.toString();
s.length();
s.isEmpty();
System.out.println("s.toString()="+s.toString());
System.out.println("s.length()="+s.length());
System.out.println("s.isEmpty()="+s.isEmpty());
System.out.println("--------------------");
//插入3个字符串、成串、求长度、判断是否为空
//在下面添加代码
s.insert(0, "zhangsan");
System.out.println("s.toString()="+s.toString());
s.insert(1, "lisi");
System.out.println("s.toString()="+s.toString());
s.insert(2, "wangwu");
System.out.println("s.toString()="+s.toString());
System.out.println("s.length()="+s.length());
System.out.println("s.isEmpty()="+s.isEmpty());
System.out.println("----------------------");
//取值、置值、成串、求长度、判断是否为空
//在下面添加代码
s.get(1);
System.out.println("s.get(1)="+s.get(1));
System.out.println("s.toString()="+s.toString());
s.set(1, "zhaoliu");
System.out.println("s.toString()="+s.toString());
System.out.println("s.length()="+s.length());
System.out.println("s.isEmpty()="+s.isEmpty());
System.out.println("----------------------");
//删除、成串、求长度、判断是否为空
//在下面添加代码
s.remove(1);
System.out.println("s.remove(1)="+s.remove(1));
System.out.println("s.toString()="+s.toString());
System.out.println("s.length()="+s.length());
System.out.println("s.isEmpty()="+s.isEmpty());
System.out.println("----------------------");
//清空、成串、求长度、判断是否为空
//在下面添加代码
s.removeAll();
System.out.println("s.toString()="+s.toString());
System.out.println("s.length()="+s.length());
System.out.println("s.isEmpty()="+s.isEmpty());
}
}
- Java数据结构线性表中插入、删除、查询、成串、查找等操作
- 使用JAVA代码来模拟线性链表的相关操作(增加,删除,插入及查找等)
- 线性表的基本操作,包括:创建、插入、删除、查找等基本操作
- 数据结构之线性表的顺序结构操作2-(删除,插入,查值等)
- 编程实现顺序存储结构和链式存储结构线性表的建立、查找、插入、删除等基本操作
- 数据结构 线性链表的创立及其基本操作初始化、遍历、销毁、判空、求表长、删除、插入等
- 线性表中实现查找、删除、插入元素
- java实现创建链表以及插入节点,查找结点,删除节点等操作
- 链表操作:创建,插入,删除,查找等功能
- 数据结构之链表操作,创建,插入,删除,查找。
- 链表创建、查询、删除、插入等操作
- hibernate插入,查询,删除等操作
- 线性表建立、插入、删除、查找应用
- 线性表的插入,删除,合并,查找
- 线性表的插入、查找与删除
- 线性表的顺序存储结构(查找、插入、删除等)
- 线性表、栈、队列等查找、删除、插入的时间复杂度O()
- 线性表、栈、队列等查找、删除、插入的时间复杂度O()
- synchronized的使用方法
- Flex 布局教程:实例篇
- Android 不规则封闭区域填充 手指秒变油漆桶
- Gson解析工具类
- 快到家了【经济学人】
- Java数据结构线性表中插入、删除、查询、成串、查找等操作
- 前向纠错FEC
- Mac常用快捷键
- java访问权限
- oracle服务器上数据库database与数据库实例instance的关系
- 查找附近点--Geohash方案讨论
- java时间推算
- C++构造函数初始化列表与赋值
- BC#59 Reorder the Books