设计一个有序顺序表 数据结构(java)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计一个有序顺序表 数据结构(java)相关的知识,希望对你有一定的参考价值。
设计一个有序顺序表(元素已排序,递增或者递减。)
实现插入,删除等操作,元素插入位置由其值决定。
题目是这样的。求代码。。很急很急!!
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)的主要内容,如果未能解决你的问题,请参考以下文章