package chapter2;
// 2.1 To the HighArray class in the highArray.java program (Listing 2.3), add a
// method called getMax() that returns the value of the highest key in the array,
// or –1 if the array is empty. Add some code in main() to exercise this method.
// You can assume all the keys are positive numbers.
// highArray.java
// demonstrates array class with high-level interface
// to run this program: C>java HighArrayApp
////////////////////////////////////////////////////////////////
class HighArray
{
private long[] a; // ref to array a
private int nElems; // number of data items
//-----------------------------------------------------------
public HighArray(int max) // constructor
{
a = new long[max]; // create the array
nElems = 0; // no items yet
}
//-----------------------------------------------------------
public boolean find(long searchKey)
{ // find specified value
int j;
for(j=0; j<nElems; j++) // for each element,
if(a[j] == searchKey) // found item?
break; // exit loop before end
if(j == nElems) // gone to end?
return false; // yes, can't find it
else
return true; // no, found it
} // end find()
//-----------------------------------------------------------
public void insert(long value) // put element into array
{
a[nElems] = value; // insert it
nElems++; // increment size
}
//-----------------------------------------------------------
public boolean delete(long value)
{
int j;
for(j=0; j<nElems; j++) // look for it
if( value == a[j] )
break;
if(j==nElems) // can't find it
return false;
else // found it
{
for(int k=j; k<nElems; k++) // move higher ones down
a[k] = a[k+1];
nElems--; // decrement size
return true;
}
} // end delete()
//-----------------------------------------------------------
public void display() // displays array contents
{
for(int j=0; j<nElems; j++) // for each element,
System.out.print(a[j] + " "); // display it
System.out.println("");
}
//-----------------------------------------------------------
// start here
public long getMax() {
if(nElems == 0) {
return -1; //数组为空
}
long max = a[0];
for(int j = 1; j < nElems; j++) {
if(max < a[j]) {
max = a[j];
}
}
return max;
}
// end here
} // end class HighArray
////////////////////////////////////////////////////////////////
class HighArrayApp
{
public static void main(String[] args)
{
int maxSize = 100; // array size
HighArray arr; // reference to array
arr = new HighArray(maxSize); // create the array
arr.insert(77); // insert 10 items
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.insert(88);
arr.insert(11);
arr.insert(00);
arr.insert(66);
arr.insert(33);
arr.display(); // display items
int searchKey = 35; // search for item
if( arr.find(searchKey) )
System.out.println("Found " + searchKey);
else
System.out.println("Can't find " + searchKey);
arr.delete(00); // delete 3 items
arr.delete(55);
arr.delete(99);
arr.display(); // display items again
// start here
System.out.println(arr.getMax());
// end here
} // end main()
} // end class HighArrayApp
77 99 44 55 22 88 11 0 66 33
Can't find 35
77 44 22 88 11 66 33
88
package chapter2;
// Modify the method in Programming Project 2.1 so that the item with the
// highest key is not only returned by the method, but also removed from the
// array. Call the method removeMax().
// highArray.java
// demonstrates array class with high-level interface
// to run this program: C>java HighArrayApp
////////////////////////////////////////////////////////////////
class HighArray
{
private long[] a; // ref to array a
private int nElems; // number of data items
//-----------------------------------------------------------
public HighArray(int max) // constructor
{
a = new long[max]; // create the array
nElems = 0; // no items yet
}
//-----------------------------------------------------------
public boolean find(long searchKey)
{ // find specified value
int j;
for(j=0; j<nElems; j++) // for each element,
if(a[j] == searchKey) // found item?
break; // exit loop before end
if(j == nElems) // gone to end?
return false; // yes, can't find it
else
return true; // no, found it
} // end find()
//-----------------------------------------------------------
public void insert(long value) // put element into array
{
a[nElems] = value; // insert it
nElems++; // increment size
}
//-----------------------------------------------------------
public boolean delete(long value)
{
int j;
for(j=0; j<nElems; j++) // look for it
if( value == a[j] )
break;
if(j==nElems) // can't find it
return false;
else // found it
{
for(int k=j; k<nElems; k++) // move higher ones down
a[k] = a[k+1];
nElems--; // decrement size
return true;
}
} // end delete()
//-----------------------------------------------------------
public void display() // displays array contents
{
for(int j=0; j<nElems; j++) // for each element,
System.out.print(a[j] + " "); // display it
System.out.println("");
}
//-----------------------------------------------------------
// start here
public long getMax() {
if(nElems == 0) {
return -1; //数组为空
}
long max = a[0];
for(int j = 1; j < nElems; j++) {
if(max < a[j]) {
max = a[j];
}
}
return max;
}
public boolean removeMax() {
if(getMax() == -1) {
return false;
}
return delete(getMax());
}
// end here
} // end class HighArray
////////////////////////////////////////////////////////////////
class HighArrayApp
{
public static void main(String[] args)
{
int maxSize = 100; // array size
HighArray arr; // reference to array
arr = new HighArray(maxSize); // create the array
arr.insert(77); // insert 10 items
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.insert(88);
arr.insert(11);
arr.insert(00);
arr.insert(66);
arr.insert(33);
arr.display(); // display items
int searchKey = 35; // search for item
if( arr.find(searchKey) )
System.out.println("Found " + searchKey);
else
System.out.println("Can't find " + searchKey);
arr.delete(00); // delete 3 items
arr.delete(55);
arr.delete(99);
arr.display(); // display items again
// start here
System.out.println(arr.getMax());
arr.removeMax();
System.out.println(arr.getMax());
// end here
} // end main()
} // end class HighArrayApp
77 99 44 55 22 88 11 0 66 33
Can't find 35
77 44 22 88 11 66 33
88
77
分享到:
相关推荐
Tarjan-data_structures_and_network_algorithms.pdfTarjan-data_structures_and_network_algorithms.pdfTarjan-data_structures_and_network_algorithms.pdfTarjan-data_structures_and_network_algorithms....
从文件提供的部分内容来看,这本名为《数据结构及算法(data_structures_and_algorithms_in_java_2nd)》的书籍由Robert Lafore撰写,是第二版。此外,该书的版权信息,编辑团队,以及出版商Sams Publishing的一些...
数据结构与算法Java语言描述(第2版)。资源中包含了PDF电子书和完整程序源代码。英文的,但描述简单易懂。 与其它同类书相比,本书的特点:1....特别说明:作者是Robert Lafore。因为存在一本同名的书。
1. 书籍名称:“Data_structures_and_algorithms_made_easy”表明这是一本专注于数据结构和算法的入门或中级教材。这种书籍通常旨在帮助读者容易地理解和掌握这些基础概念,并且在IT行业中,数据结构和算法是编程、...
Algorithms_and_Data_Structures_implemented_in_Go_f_Go.zip Algorithms_and_Data_Structures_implemented_in_Go_f_Go.zip Algorithms_and_Data_Structures_implemented_in_Go_f_Go.zip Algorithms_and_Data_...
本书的作者还撰写了其他几本与数据结构相关的书籍,如《数据结构》(Data Structures),这些资源为读者提供了更多深入学习的机会。 总的来说,《数据结构与算法在Java中的应用》第四版是一本非常适合于大学本科生...
《数据结构与算法Java版第四版》是一本深入探讨数据结构和算法的书籍,专为Java程序员设计。这本书由Michael T. Goodrich和Roberto Tamassia合著,旨在帮助读者理解和掌握计算机科学中的核心概念,提升编程能力,...
Algorithm-Data_Structures_and_Algorithms_in_Python.zip,由MichaelT.Goodrich,RobertoTamassia和MichaelH.Goldwasser撰写的“Python中的数据结构和算法”的工作解决方案。,算法是为计算机程序高效、彻底地完成...
Data Structures and Algorithms in Java (2nd Edition) By Robert Lafore Publisher: Sams Number Of Pages: 800 Publication Date: 2002-11-16 ISBN-10 / ASIN: 0672324539 ISBN-13 / EAN: 9780672324536 ...
数据结构 c语言版本 附带源代码 linux下敲make 命令 直接编译 Data_Structures_and_Algorithm_Analysis_in_C.pdf 本书是c语言和数据结构学习的经典, 语言数据结构方面的知识会有所提高 .
"Data_Structures_and_Algorithms_in_Java_Chinese.rar_algorithms"这个压缩包可能包含了关于这个主题的详细资料,包括电子书、教程或者代码示例。 首先,我们来讨论数据结构。数据结构是指在计算机中组织和存储...
本书不同于以往介绍数据结构或介绍算法的书,而是囊括了数据结构及算法,是作者在该领域做出的又一个创新性的贡献。本书的另一个独特之处在于其充分强调了应用性。对于每一个种数据结构及算法,都分别采用了若干个...
Algorithm-Data-Structures-and-Algorithms-in-Java-2nd-Edition-by-Robert-Lafore.zip,Robert Lafore第二版的数据结构与算法,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
Problem Solving in Data Structures & Algorithms” is a series of books about the usage of Data Structures and Algorithms in computer programming. The book is easy to follow and is written for ...
Basic_data_structures,_sorting_algorithms,_algorit_data-structure-and-algorithm
[AddisonWesley]Algorithms_Data_Structures_And_Problem_Solving_With_C++.zip
Now revised to reflect the innovations of Java 5.0, Goodrich and Tamassia’s Fourth Edition of Data Structures and Algorithms in Java continues to offer accessible coverage of fundamental data ...
《Data Structures and Algorithms in Swift》一书由Kelvin Lau与Vincent Ngo共同编写,旨在为Swift开发者提供全面的数据结构与算法知识,帮助他们更好地理解和运用这些基础知识来构建高效的应用程序。 #### 二、...
《Python数据结构与算法》 在编程领域,算法与数据结构是两个不可或缺的概念,它们是构建高效软件的基础。本文将深入探讨Python中的数据结构和算法,帮助你更好地理解和运用这些核心概念。 首先,数据结构是组织和...