摘要:通過實例詳細分析了數據結構中數據和操作在Java環境中的實現過程,從而學會編寫更加高效的程序。
關鍵詞:Java 數據結構 實現
中圖分類號:TP312/G434 文獻標識碼:B 文章編號:1002-2422(2008)01-0038-02
1 數據結構抽象數據類型在Java中的實現
“數據結構”課程主要討論表、棧、隊列、串、數組、樹和二叉樹、圖等典型的數據結構,這些結構就是一個個不同的抽象數據類型,用Java中的類可以實現。
類中的數據稱為成員變量,對數據進行的操作稱為成員方法。數據結構中的數據和在數據上的操作可用類成員變量和成員方法實現。
以棧為例具體說明數據結構中的抽象類型用JaVll中類的實現過程。棧根據存儲結構不同在Java中創建了不同的類,如圖1所示。

Java中類的思想:
<類聲明>
{
<成員變量的聲明>
<成員方法的聲明及實現>
}
棧中以鏈式存儲類Stack2的具體實現如下:
package ds_java;
import ds_java.OndinkNode;
import ds_java.Onelink1;
public class Stack2 extends Onelink1 {
private OnelinkNode top;
public Stack2(){
top=1;}
public boolean isEmpty(){
return top==1;}
public boolean push(int k){
OnelinkNode q=new OnelinkNode(k):
q.nextffitop;
top=q;
return true;}
public im poP(){
int k=-1;
if(lisEmpty()){
k=top.data;
top=top.next;}
return k;}
public void output(){
super.output(top);}}
在Stack2棧類中使用了保存在ds_java包中的單鏈表結點類和單鏈表類實現了數據的存儲,用類方法push(intk)、pop()、output()等實現了在數據上的操作算法,當然數據可以擴展,關系也可以擴展,這樣可以用Java描述其他的數據結構。
2 具體問題的解決
對象的創建:對象是類的實例,對象是屬于某個已知類,程序中一旦定義了類之后,那么創建的對象屬于某個類,此對象就具有這個類的性質,就可以運用這個對象解決實際問題。如何運用現有的帶結構的數據解決實際問題,以棧為例,編寫把十進制正整數轉換為十六進制數輸出的算法。程序如下:
import ds_java.Stack2;
public class Tram{
public static void Transform(int num){
Stack2 s1=sew Stack2();
while(num!=O){
int k=num%16;
s1.push(k):
num=num/16;}
while(!s1.isEmpty()){
int x=s1.pop();
if(x<10)
System.out.print(“”+x);
else{ switch(x){
case 10;
system.out.print(“A”);
break;
case 11;
system.out.print(“B”);
break;
case 12:
System.out.print(“c”):
break;
case 13;
system.out.print(“D”):
break;
case 14:
System.out.print(“E”);
break;
case 15;
System.out.print(“F”);
bieBk;}}}}
public static void main(Strlng Dars.){
int a=45;
if(args.1ength>0)
a=Integer.parseInt(args[0]);
Transform(a);}}
3 結束語
可以體會數據結構中對數據處理的方法,同時對面向對象的程序設計有更深入的理解,通過語言環境與數據結構兩者之間的浸透,不僅學到了數據結構中對數據的處理方法:而且深化了對Java語言的運用,起到了基礎課與專業課之間的橋梁作用。