计算机程序一般是用来存储和检索数据的。而字典用于一个简单数据库的接口,被定义成一个ADT,它提供在数据库中存储、查找和删除记录的功能。
定义字典ADT为一个接口
package dictionaryADT;
public interface Dictionary {
//清空并初始化字典
void clear();
//插入数据
boolean insert(Object obj);
//删除指定数据
Object remove(Object key);
//删除任意一个数据
boolean removeAny();
//查找数据
boolean find(Object key);
//字典中元素的个数
int size();
}
使用顺序表实现字典
package dictionaryADT;
import List.AList;
public class UALdict implements Dictionary{
private AList<Object> list;
public UALdict(int size)
{
list = new AList<Object>(size);
}
@Override
public void clear() {
list.clear();
}
@Override
public boolean insert(Object obj) {
return list.append(obj);
}
@Override
public Object remove(Object key) {
Object temp = null;
for(list.setStart();list.getValue(temp);list.next())
{
if(temp.equals(key))
{
list.removed(temp);
return true;
}
}
return temp;
}
@Override
public boolean removeAny() {
if(size() == 0)
return false;
Object data = null;
list.setEnd();
list.prev();
list.removed(data);
return true;
}
@Override
public boolean find(Object key) {
Object temp = null;
for(list.setStart();list.getValue(temp);list.next())
{
if(temp.equals(key))
{
return true;
}
}
return true;
}
@Override
public int size() {
return list.leftLength() + list.rightLength();
}
public static void main(String[] args)
{
}
}
这里有两个小问题,因为我暂时不知道Java怎样传引用调用,所以在list.getValue(temp)有点问题,即得到的值不会传给temp
还有就是temp.equals(key)很定不能这么用,但实现比较要根据具体数据库来,所以这里我偷了个懒
未完持续