日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Java > 正文

Java語言中鏈表和雙向鏈表

2020-03-24 19:28:16
字體:
來源:轉載
供稿:網友
鏈表是一種重要的數據結構,在程序設計中占有很重要的地位。C語言和C++語言中是用指針來實現鏈表結構的,由于Java語言不提供指針,所以有人認為在Java語言中不能實現鏈表,其實不然,Java語言比C和C++更容易實現鏈表結構。Java語言中的對象引用實際上是一個指針(本文中的指針均為概念上的意義,而非語言提供的數據類型),所以我們可以編寫這樣的類來實現鏈表中的結點。

html' target='_blank'>class Node
{
Object data;
Node next;//指向下一個結點
}

將數據域定義成Object類是因為Object類是廣義超類,任何類對象都可以給其賦值,增加了代碼的通用性。為了使鏈表可以被訪問還需要定義一個表頭,表頭必須包含指向第一個結點的指針和指向當前結點的指針。為了便于在鏈表尾部增加結點,還可以增加一指向鏈表尾部的指針,另外還可以用一個域來表示鏈表的大小,當調用者想得到鏈表的大小時,不必遍歷整個鏈表。下圖是這種鏈表的示意圖: 鏈表的數據結構

我們可以用類List來實現鏈表結構,用變量Head、Tail、Length、Pointer來實現表頭。存儲當前結點的指針時有一定的技巧,Pointer并非存儲指向當前結點的指針,而是存儲指向它的前趨結點的指針,當其值為null時表示當前結點是第一個結點。那么為什么要這樣做呢?這是因為當刪除當前結點后仍需保證剩下的結點構成鏈表,如果Pointer指向當前結點,則會給操作帶來很大困難。那么如何得到當前結點呢,我們定義了一個方法cursor(),返回值是指向當前結點的指針。類List還定義了一些方法來實現對鏈表的基本操作,通過運用這些基本操作我們可以對鏈表進行各種操作。例如reset()方法使第一個結點成為當前結點。insert(Object d)方法在當前結點前插入一個結點,并使其成為當前結點。remove()方法刪除當前結點同時返回其內容,并使其后繼結點成為當前結點,如果刪除的是最后一個結點,則第一個結點變為當前結點。

鏈表類List的源代碼如下:

import java.io.*;
public class List
{
/*用變量來實現表頭*/
private Node Head=null;
private Node Tail=null;
private Node Pointer=null;
private int Length=0;
public void deleteAll()
/*清空整個鏈表*/
{
Head=null;
Tail=null;
Pointer=null;
Length=0;
}
public void reset()
/*鏈表復位,使第一個結點成為當前結點*/
{
Pointer=null;
}
public boolean isEmpty()
/*判斷鏈表是否為空*/
{
return(Length==0);
}
public boolean isEnd()
/*判斷當前結點是否為最后一個結點*/
{
if(Length==0)
throw new java.lang.NullPointerException();
else if(Length==1)
return true;
else
return(cursor()==Tail);
}
public Object nextNode()
/*返回當前結點的下一個結點的值,并使其成為當前結點*/
{
if(Length==1)
throw new java.util.NoSuchElementException();
else if(Length==0)
throw new java.lang.NullPointerException();
else
{
Node temp=cursor();
Pointer=temp;
if(temp!=Tail)
return(temp.next.data);
else
throw new java.util.NoSuchElementException();
}
}
public Object currentNode()
/*返回當前結點的值*/
{
Node temp=cursor();
return temp.data;
}

public void insert(Object d)
/*在當前結點前插入一個結點,并使其成為當前結點*/
{
Node e=new Node(d);
if(Length==0)
{
Tail=e;
Head=e;
}
else
{
Node temp=cursor();
e.next=temp;
if(Pointer==null)
Head=e;
else
Pointer.next=e;
}
Length++;
}
public int size()
/*返回鏈表的大小*/
{
return (Length);
}
public Object remove()
/*將當前結點移出鏈表,下一個結點成為當前結點,如果移出的結點是最后一個結點,則第一個結點成為當前結點*/
{
Object temp;
if(Length==0)
throw new java.util.NoSuchElementException();
else if(Length==1)
{
temp=Head.data;
deleteAll();
}
else
{
Node cur=cursor();
temp=cur.data;
if(cur==Head)
Head=cur.next;
else if(cur==Tail)
{
Pointer.next=null;
Tail=Pointer;
reset();
}
else
Pointer.next=cur.next;
Length--;
}
return temp;
}
private Node cursor()
/*返回當前結點的指針*/
{
if(Head==null)
throw new java.lang.NullPointerException();
else if(Pointer==null)
return Head;
else
return Pointer.next;
}
public static void main(String[] args)
/*鏈表的簡單應用舉例*/
{
List a=new List ();
for(int i=1;i i++)
a.insert(new Integer(i));
System.out.println(a.currentNode());
while(!a.isEnd())
System.out.println(a.nextNode());
a.reset();
while(!a.isEnd())
{
a.remove();
}
a.remove();
a.reset();
if(a.isEmpty())
System.out.println("There is no Node in List /n");
System.in.println("You can press return to quit/n");
try
{
System.in.read();
//確保用戶看清程序運行結果
}
catch(IOException e)
{}
}
}
class Node
/*構成鏈表的結點定義*/
{
Object data;
Node next;
Node(Object d)
{
data=d;
next=null;
}
}

讀者還可以根據實際需要定義新的方法來對鏈表進行操作。雙向鏈表可以用類似的方法實現只是結點的類增加了一個指向前趨結點的指針。

可以用這樣的代碼來實現:

class Node
{
Object data;
Node next;
Node previous;
Node(Object d)
{
data=d;
next=null;
previous=null;
}
}

當然,雙向鏈表基本操作的實現略有不同。鏈表和雙向鏈表的實現方法,也可以用在堆棧和隊列的實現中,這里就不再多寫了,有興趣的讀者可以將List類的代碼稍加改動即可。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
中文字幕欧美日韩va免费视频| 麻豆一区二区99久久久久| 日韩视频专区| 国产高清在线视频| 亚洲免费视频一区| 欧美日本精品在线| 欧美日韩三级在线| 欧美三级日韩三级国产三级| 欧美日韩国产在线播放| 亚洲福利在线视频| 亚洲乱码一区av黑人高潮| 国产高清在线视频| 久久99久久久久久久噜噜| 国产欧美日韩不卡| 久久久精品免费免费| 精品视频1区2区3区| 中文字幕日韩欧美| 一区二区国产在线| 1区2区3区在线视频| 亚洲免费在线观看av| 国产欧美久久久久久久久| 国产福利不卡| 在线免费91| 国产美女主播视频一区| 欧美日韩中文字幕综合视频| 精品免费久久久| av免费在线不卡| 国产视频一区三区| 在线视频不卡一区二区| 91欧美在线视频| 一区二区视频在线| 亚洲女人天堂a在线播放| 日韩精品中文字幕第1页| 日韩欧美高清在线视频| 最近高清中文在线字幕在线观看1 中文字幕在线视频久 | 欧美亚洲视频在线看网址| 欧美日韩在线中文字幕| 国产欧美日韩不卡| 亚洲欧美日本另类| www.三级.com| 日韩一二三四区| 国产午夜精品久久| 麻豆精品视频入口| 亚洲电影中文字幕在线观看| 樱花草www在线观看| 中文字幕日韩精品在线| 久久精品电影| 在线视频三区| 欧美日韩在线中文字幕| 精品国产欧美成人夜夜嗨| 亚洲一区在线观看免费| 日韩专区视频网站| aaa大片在线观看| 欧美久久综合性欧美| 久久91精品久久久久久秒播| 日韩精品视频在线播放| 日韩在线观看一区| 一区在线视频观看| 日韩一级精品| 日本a口亚洲| 日韩中文欧美在线| 免费视频久久| 视频一区日韩| 国产婷婷色一区二区三区在线| 日韩精品a在线观看91| 91欧美日韩在线| 国产婷婷色一区二区三区在线| 精品福利二区三区| 91精品国产91综合久久蜜臀| www.精品视频| 蜜臀久久精品| 日韩一级二级三级精品视频| 国产三级精品在线观看| 国产精久久久久| 久久香蕉av| 亚洲成年人在线播放| 91精品国产91| 天堂√8在线中文| 中文字幕日韩免费视频| 亚洲大片精品永久免费| 日本中文字幕在线观看| 国产高清视频一区二区| 欧美日韩国产一区中文午夜| 日本一级一片免费视频| 亚洲三级av| 99久久精品国产成人一区二区| 亚洲免费看av| 色综合久久88色综合天天免费| 欧美在线视频第一页| 国产视频一区三区| 日韩中文字幕亚洲| 亚洲福利一区| 国产三级中文字幕| 日韩精品视频在线免费观看| 欧美中文字幕在线视频| 中文官网资源新版中文第二页在线观看 | 欧美xxxx中国| 亚洲一区中文在线| 日韩欧美资源站| 中文字幕在线观看播放| 一区二区在线看| 在线视频亚洲| 99中文字幕一区| 日韩精品手机在线| 日韩在线视频在线观看| 国产欧美日韩在线| 久久蜜桃一区二区| 久久精品网站免费观看| 日韩视频免费直播| 最近中文字幕第一页| 精品欧美日韩在线| 日韩国产高清一区| 欧美日韩国产中文| 欧美日韩三级视频| 欧美三级日本三级少妇99| 精品一二线国产| 日韩精品在线私人| 亚洲大胆人体av| 日韩精品资源二区在线| 日韩中文欧美在线| 日韩你懂的电影在线观看| 日韩欧美中文第一页| 日韩欧美色综合网站| 九九视频精品免费| www.日韩免费| 在线中文字幕网站| 免费在线播放av| 一级国产黄色片| 在线视频一区二区三区在线播放| 最近中文av字幕在线中文| 精品极品三级久久久久| 午夜av一区| 不卡视频一区二区| 久久人人精品| 亚洲综合中文字幕在线| 欧美日韩亚洲国内综合网| 国产欧美日韩视频在线| 欧美三级中文字幕在线观看| 国产中文在线观看| 中文在线一区二区| 欧美乱大交xxxxx免费| 日韩欧美中文第一页| 精品激情国产视频| 国产一区在线精品| 精品中文字幕在线| 亚洲欧美日本另类| 福利在线国产| 国产拍揄自揄精品视频麻豆| 国产激情三区| 欧美久久久久久蜜桃| 国内精品99| 久久精品视频免费看| 欧美一卡2卡3卡4卡| 日韩三级高清在线| 中文在线不卡| 最近高清中文在线字幕在线观看1 中文字幕在线视频久 | 久久99蜜桃精品| 视频一区二区国产| 黄色国产网站在线观看| 欧美在线视频一区二区| 欧美日韩激情一区二区三区| 欧美日韩中文| 日韩欧美一二三| 久久99蜜桃精品| 欧美日韩亚洲国产综合| 亚洲一级在线| 日本a口亚洲| 日韩视频1区| 亚洲三级国产| 日韩精品a在线观看91| 在线国产1区| 免费精品国产自产拍观看| 亚洲三级中文字幕| 久久精品视频免费看| 国产激情三区| 日韩在线高清| 中文字幕亚洲二区 | 欧美在线日韩在线| 日韩中文字幕视频在线| 国产日韩在线亚洲字幕中文| 精品国产欧美日韩不卡在线观看| 极品久久久久久| 天堂在线www天堂中文在线| av中文在线资源| 亚洲免费精品| 国产裸体歌舞团一区二区| 色综合久久88色综合天天免费| www高清在线视频日韩欧美| 91精品免费看| 国产在线二区| 日韩视频一区二区在线观看| 最近中文字幕日韩精品| 91精品网站| 一级片在线免费看| 国产亚洲短视频| 国产资源中文字幕| 99国产一区| 日韩精品―中文字幕| 国产视频1区| 欧美日韩国产一区| 九九精品调教| 精品国自产在线观看| 91精品在线观看国产| 亚洲高清免费一级二级三级| 精品成人久久久| 欧美日韩视频不卡| 国内国产区免费视频| 欧美一级欧美三级在线观看| 日韩中文欧美| 中文字幕在线欧美| 日韩精品丝袜在线| av免费在线观看网址| 91精品国产乱码久久蜜臀| 日本а中文在线天堂| 精品人妻一区二区三区视频| 国产午夜精品全部视频播放| 亚洲福利一区| 国产一级免费看| av免费在线播放| 中文字幕精品亚洲| 99久久精品国产成人一区二区| 国产日韩av一区| 日韩欧美久久久| 婷婷精品视频| 亚洲综合日韩| 91精品国产自产在线观看永久∴| 91精品在线视频观看| 中文欧美字幕免费| 日韩欧美中文字幕在线观看| 福利一区二区| 欧美亚洲国产日韩| 日韩欧美国产不卡| 久久精品日韩欧美| 日韩你懂的电影在线观看| 久久久精品网| 日韩欧美综合在线| 国产婷婷一区二区| 亚洲视频在线观看日本a| 日本精品在线播放| 91久久在线| 一本一道综合狠狠老| 久久99久久久久| 91精品啪在线观看国产60岁| 欧美一级免费观看| 日韩精品手机在线| 精品久久在线| 日韩中文字幕亚洲| 91最新在线| 尤物av一区二区| 午夜国产福利在线观看| 国产69精品久久app免费版| 欧美亚洲综合视频| 国产亚洲二区| 国产欧美日韩三级| 成片免费观看| 日韩欧美国产黄色| www在线播放| 色综合影院在线| 国产黄色在线| 欧美一级一级性生活免费录像| 午夜成人鲁丝片午夜精品| 亚洲视频电影在线| 精品在线观看一区| 一区二区欧美国产| 国产中文在线播放| 91精品视频国产| 国产不卡精品在线| 欧美 日韩 国产 高清| 国产天堂素人系列在线视频| 日韩欧美国产三级| 国产在线高潮| 欧美 日韩 国产 高清| 日韩精品在线观| 久久久精品午夜少妇| 欧美日韩三级在线观看| 欧美日韩精品在线观看| 国内国产区免费视频| 欧美日韩乱国产| 91精品啪在线观看国产60岁| 日韩精品在线观看视频| 999精品网| 午夜黄色小视频| 中文字幕精品亚洲| 日韩免费视频一区二区视频在线观看| 日韩欧美在线视频| 日韩欧美不卡| 国产三级做爰在线观看| 欧美国产一级片| 黄色一级大片在线免费看国产一| 国产欧美日韩在线观看| 亚洲三级免费看| 中文字幕国产亚洲| 国产v日产∨综合v精品视频| 日韩精品在线视频观看| 高清一区二区| 精品网站999www| 国产一区在线观看视频| 国产乱一区二区| 91精品国产91综合久久蜜臀| 一区二区不卡视频| wwwwww国产| 日韩欧美三级| 亚洲免费中文字幕| 欧美日韩精品免费看| 欧美国产一级片| 中文精品视频| 欧美日韩国产高清一区| 国产日韩av一区二区| 国产日韩精品在线| 日韩国产欧美| 精品久久久视频| 中文字幕精品一区二| 久久激情一区| 欧美日韩中文字幕精品| 中文字幕在线视频精品| 国产高清精品二区| 日韩中文在线字幕| 日韩精品三级| 日韩精品手机在线| 色综合影院在线| 国产蜜臀在线| 日韩视频精品| 国产 欧美在线| 中文国产字幕在线观看| 一区二区高清在线| 国产精品视频福利一区二区| 狠狠色噜噜狠狠狠狠97| 亚洲羞羞网站| 日韩在线 中文字幕| 在线视频你懂得一区| 日韩三级视频在线播放| 五月天久久比比资源色| 日韩在线 中文字幕| 中文字幕亚洲区| 日韩国产专区| 精品亚洲永久免费| 日韩视频 中文字幕| 亚洲永久字幕| 久久久精品99| 日韩在线高清视频| 亚洲a级在线播放观看| 亚洲欧美中文字幕| 不卡一二三区| 国产黄色在线看| 久久99蜜桃精品久久久久小说| 亚洲综合在线小说| www.日韩免费| 亚洲永久免费视频| 久久婷婷国产| 精品视频在线导航| 中文字幕亚洲在| 久久精品久久久久| 在线中文字幕网站| 日韩1区在线| 婷婷综合福利| 国产亚洲污的网站| 国产成人日日夜夜| 久久精品免费在线观看| 欧美日韩一级视频| 九九视频精品免费| 欧美日韩亚洲系列| 欧美在线亚洲一区| 国产日韩精品在线| 午夜国产在线视频| 日韩在线欧美| 亚洲三级免费看| 欧美三级日韩在线| 交视频在线观看国产| 日韩欧美在线网站| 日韩欧美国产免费播放| 亚洲免费精品视频| 欧美一级久久久久久久久大| 欧美亚洲综合视频| 日韩在线三区| 99久热re在线精彩视频| 日韩欧美国产三级| 日韩中文字幕第一页| 成人ww免费完整版在线观看| 日韩三级精品| 欧美中日韩在线| 国产色综合网| 国产在线不卡av| 日韩精品在线私人| 中文字幕在线观看视频www| 日韩精品视频在线看| 欧美中文字幕在线视频| 日韩欧美国产不卡| 国产视频三级在线观看播放| 日韩欧美在线看| 免费在线观看国产黄| 日韩在线观看精品| 久久91精品久久久久久秒播| 福利在线国产| 欧美日韩国产第一页| 日韩欧美中文字幕在线播放| 中文字幕 欧美日韩| 五月综合激情日本mⅴ| 欧美三级网址| a视频免费看| 黄色在线播放网站|