您的位置:首页 > 理论基础 > 数据结构算法

《Java数据结构和算法(第二版)》中编程作业2.6

2009-08-06 16:54 267 查看
2.6 向highArray.java程序(清单2.3)的HighArray类中加入一个noDup()的方法,使之可以将数组中的所有重复数据项删除.即如果数组中有三个数据项的关键字为17, noDup()方法将会删除其中的两个.不必考虑保持数据项的顺序.一种方法是先用每一个数据项比较,并用null(或是一个不会用在真正的关键字中的特殊值)将重复的数据项覆盖掉。然后将所有的null删除,当然还要缩小数组的大小。

public void noDup() {
int i,j,count = 0;
for (i = 0; i < nElems; i++) {
for (j = i + 1; j < nElems; j++) {
if (a[j] != -1 && a[i] == a[j]) {
a[j] = -1;
count++;
}
}
}
long[] arr = new long[nElems - count];
for (i = 0, j = 0; i < nElems; i++) {
if (a[i] != -1) {
arr[j++] = a[i];
}
}
a = arr;
nElems -= count;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐