设计一个有序顺序表 数据结构(java)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计一个有序顺序表 数据结构(java)相关的知识,希望对你有一定的参考价值。

设计一个有序顺序表(元素已排序,递增或者递减。)
实现插入,删除等操作,元素插入位置由其值决定。
题目是这样的。求代码。。很急很急!!

参考技术A package array;

class OrderArray
private long[] a;
private int nElems;

public OrderArray(int maxSize)
a = new long[maxSize];
nElems = 0;


public void insert(long value)
int pos = 0;
for(pos=0;pos<nElems;pos++)
if(a[pos]>value)
break;


for(int i=nElems;i>pos;i--)
a[i] = a[i-1];

a[pos] = value;
nElems++;


public boolean delete(long value)
int pos = find(value);
if(pos!=-1)
for(int i=pos;i<nElems;i++)
a[i] = a[i+1];

nElems --;
return true;

return false;


public int find(long keySearch)
int lowerBound = 0;
int upperBound = nElems-1;
int curIn = 0;
while(true)
curIn = (lowerBound+upperBound)/2;
if(a[curIn]==keySearch)
return curIn;
else if(lowerBound>upperBound)
return -1;
else
if(a[curIn]>keySearch)
upperBound = curIn -1;
else
lowerBound = curIn +1;





public void display()
for(int i=0;i<nElems;i++)
System.out.println(a[i]);




public class OrderArrayApp

/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub
int maxSize = 100;
OrderArray orderArray = new OrderArray(maxSize);
orderArray.insert(1);
orderArray.insert(7);
orderArray.insert(9);
orderArray.insert(8);
orderArray.insert(6);
orderArray.insert(4);
orderArray.display();
orderArray.delete(8);
orderArray.display();


本回答被提问者采纳
参考技术B 唉……
又是求作业的吧?建议还是自己动手的好

数据结构(C语言版) 线性表 算法设计Demo29

将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表。

[算法分析]

首先,按顺序不断取两个顺序表表头较小的结点存入新的顺序表中。然后,看哪个表还有剩余,将剩余的部分加到新的顺序表后面。

[算法描述]

bool Merge(SeqList A,SeqList B,SeqList &C)
	//将有序顺序表A与B合并为一个新的有序顺序表C
	if(A.lenght+B.lenght>C.maxSize) //大于顺序表的最长长度
		return false;
		int i=0,j=0,k=0;
		while(i<A.lenght&&j<B.lenght) //循环,两两比较,小者存入结果表
			if(A.data[i]<=B.data[j])
				C.data[k++]=A.data[i++];
			else
				C.data[k++]=B.data[j++];
		
		while(i<A.lenght) //还剩一个没有比较完的顺序表
			C.data[k++]=A.data[i++];
		while(j<B.lenght)
			C.data[k++]=B.data[j++];
		C.lenght=k;
		return true;

以上是关于设计一个有序顺序表 数据结构(java)的主要内容,如果未能解决你的问题,请参考以下文章

数据结构(C语言版) 线性表 算法设计Demo28

将两个顺序存储的有序表合并成一个有序表

怎么将两个顺序存储的有序表合并成一个有序表?

学习笔记-Redis设计与实现-跳跃表

数据结构(C语言版) 线性表 算法设计Demo26

Redis设计与实现-1.数据结构