亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發(fā)設計 > 正文

數(shù)據(jù)結構(五)雙鏈表

2019-11-10 20:26:04
字體:
來源:轉載
供稿:網(wǎng)友

雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數(shù)據(jù)結點中都有兩個指針,分別指向直接后繼和直接前驅。所以,從雙向鏈表中的任意一個結點開始,都可以很方便地訪問它的前驅結點和后繼結點。

java模擬雙鏈表結構.實現(xiàn)增刪改查等方法.

/** * 雙鏈表 */public class MyDoubleLink<T> implements Iterable<T>{ /** *節(jié)點的封裝類 */ PRivate class Node{ Node prev;//上一個節(jié)點 T data;//數(shù)據(jù) Node next;//下一個節(jié)點 } private Node head;//頭節(jié)點 private Node rear;//尾節(jié)點 /** * 添加數(shù)據(jù) * @param data */ public void add(T data){ //1.創(chuàng)建新的節(jié)點 Node node = new Node(); //2.把數(shù)據(jù)放入節(jié)點中 node.data = data; //3.把節(jié)點鏈接到鏈表中 //從鏈表的尾部添加數(shù)據(jù) if (rear == null) { //說明鏈表是空,當前節(jié)點就成為頭節(jié)點 rear = node; head = node; }else { //有頭節(jié)點 rear.next = node; node.prev = rear; rear = node; } } /** * 重寫toString方法 */ public String toString(){ StringBuffer sb = new StringBuffer("["); //遍歷鏈表中的所有數(shù)據(jù) Node node = head;//從頭節(jié)點開始遍歷數(shù)據(jù) while (node != null) { //有數(shù)據(jù) //拼接數(shù)據(jù) //判斷是否是尾節(jié)點 if (node != rear) { sb.append(node.data+", "); }else { sb.append(node.data); } //條件的改變 node = node.next; } sb.append("]"); return sb.toString(); } /** * 刪除數(shù)據(jù) * 1.只有一個數(shù)據(jù) * 2.刪除頭節(jié)點 * 3.刪除數(shù)據(jù) * 4.刪除尾節(jié)點 * @param data */ public void remove(T data){ //1.查找數(shù)據(jù)是否存在,查找數(shù)據(jù)所在的節(jié)點 Node node = findData(data); //2.判斷node是否存在 if (node != null) { //存在 remove(node); } } /** * 刪除節(jié)點 * @param node */ public void remove(Node node){ if (node == head && node == rear) { //1.只有一個數(shù)據(jù) head = null; rear = null; }else if (node == head) { //2.刪除頭節(jié)點,后面肯定有節(jié)點 head = head.next; head.prev = null; }else if (node == rear) { //3.刪除尾節(jié)點,前面肯定有節(jié)點 rear = rear.prev; rear.next = null; }else { //4.刪除數(shù)據(jù),前后肯定有節(jié)點 node.prev.next = node.next; node.next.prev = node.prev; } } /** * 查找數(shù)據(jù)所在節(jié)點 * @param data * @return */ private Node findData(T data) { Node node = head; while (node != null) { if (node.data.equals(data) && node.data.hashCode() == data.hashCode()) { //找到數(shù)據(jù) break; }else { //繼續(xù)下一個 node = node.next; } } return node; } /** * 修改數(shù)據(jù) * @param oldData * @param newData */ public void updata(T oldData,T newData){ Node node = findData(oldData); if (node != null) { node.data = newData; } } /** * 修改數(shù)據(jù)(在對象的hash值相同的情況下修改對象屬性值) * @param data */ public void updata(T data){ Node node = findData(data); if (node != null) { node.data = data; } } /** * 是否包含數(shù)據(jù) * @param data * @return */ public boolean contains(T data){ return findData(data) != null; } /** * 重寫迭代器方法,可以用增強for */ @Override public Iterator iterator() { class MyIte implements Iterator{ private Node node = head;//從頭節(jié)點遍歷 @Override public boolean hasNext() { return node != null; } @Override public Object next() { Object data = node.data;//獲取數(shù)據(jù) node = node.next;//設置下一個數(shù)據(jù) return data; } @Override public void remove() { //刪除next方法返回的數(shù)據(jù) MyDoubleLink.this.remove(node.prev); } } return new MyIte(); } /** * 從頭部添加數(shù)據(jù) * @param data */ public void addFirst(T data){ //1.創(chuàng)建新的節(jié)點 Node node = new Node(); //2.把數(shù)據(jù)放入節(jié)點中 node.data = data; //3.把節(jié)點鏈接到鏈表中 //從鏈表的尾部添加數(shù)據(jù) if (rear == null) { //說明鏈表是空,當前節(jié)點就成為頭節(jié)點 rear = node; head = node; }else { //有頭節(jié)點 head.prev = node; node.next = head; head = node; } } /** * 排序添加數(shù)據(jù),添加數(shù)據(jù)時自動排序 * @param data */ public void addSort(T data){ addSortBlock(data,null); } /** * 查找比data大的第一個節(jié)點 * @param data * @return */ private Node findNext(T data){ //從頭節(jié)點開始找 Node node = head; while (node != null) { //比較 if (compare(node.data, data)>0) { break; }else { //繼續(xù)找下一個 node = node.next; } } return node; } /** * 查找比data大的第一個節(jié)點(使用比較器) * @param data * @param comp 比較器 * @return */ private Node findNext(T data,Comparator<T> comp){ //從頭節(jié)點開始找 Node node = head; while (node != null) { //比較 if (comp.compare(node.data, data)>0) { break; }else { //繼續(xù)找下一個 node = node.next; } } return node; } /** * 比較兩個數(shù)據(jù)的大小 * @param obj1 * @param obj2 * @return * 0 相等 * 大于0 obj1 > obj2 * 小于0 obj1 < obj2 */ public int compare(T obj1,T obj2){ Comparable c1; Comparable c2; if (obj1 instanceof Comparable) { //數(shù)據(jù)實現(xiàn)比較器 c1 = (Comparable)obj1; c2 = (Comparable)obj2; }else { //沒有實現(xiàn)比較器 c1 = obj1.toString(); c2 = obj2.toString(); } return c1.compareTo(c2); } /** * 添加數(shù)據(jù)并進行排序(使用比較器) * @param data * @param comparable 比較器 */ public void addSort(T data,Comparator<T> comparable){ addSortBlock(data,comparable); } /** * 添加數(shù)據(jù)并進行排序(私有方法) * @param data 傳入數(shù)據(jù) * @param comp 比較器 */ private void addSortBlock(T data,Comparator<T> comp){ //1.創(chuàng)建新的節(jié)點 Node node = new Node(); //2.把數(shù)據(jù)放入節(jié)點中 node.data = data; Node next = null; //2.找位置(從小到大)添加數(shù)據(jù) if (comp != null) { next= findNext(data,comp); }else { next = findNext(data); } if (next != null) { //找到下一個節(jié)點,把data放到next節(jié)點前 if (next == head) { addFirst(data); }else { next.prev.next = node; node.next = next; node.prev = next.prev; next.prev = node; } }else { //沒找到下一個節(jié)點,data最大 add(data); } }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
美女网站视频黄色| 国产不卡网站| 亚洲欧洲精品一区| 国产一区二区三区播放| 欧美日韩喷水| jiuse.com91视频| 四虎永久国产精品| 18视频在线观看网站| 国产免费黄色录像| 国产成人精品一区| 私拍精品福利视频在线一区| 亚洲成人av免费| 日本999视频| 黄网视频在线观看| 国产精品视频白浆免费视频| а√最新版在线天堂| 一级一片免费视频| 嫩模私拍啪啪| 日本一区免费| 国产精品久久99久久| 国产精品黄视频| 欧洲精品码一区二区三区免费看| 精品一区在线| 日本a视频在线观看| 亚洲激情一区二区| 成人免费淫片aa视频免费| avove在线播放| 久久uomeier| 久久久久久久久久一级| 四虎地址8848精品| 一女二男3p波多野结衣| 97超碰人人爽| 日韩精品免费专区| 国产大片精品免费永久看nba| 欧美在线观看视频一区二区三区| 国产麻豆久久| 日韩一区二区精品在线观看| 成人福利一区| 久久久久久久综合日本| 国产精品欧美色图| 三级视频在线观看| 在线免费av资源| 青青草视频导航| 国产农村老头老太视频| 有色视频在线观看| 午夜精品一区二区三区在线视| 日本一本中文字幕| 妖精视频一区二区三区免费观看| 欧美成人午夜免费视在线看片| 成人av在线不卡| 中文字幕中文在线不卡住| www.国产区| 日韩久久久久久久| 欧美绝顶高潮抽搐喷水合集| 国产精品久久影视| www.久久撸.com| 亚洲人成绝费网站色ww| 久久永久免费视频| 91视频.com| 中国黄色片免费看| 久久久久久综合网| 欧美成人精品一级| 九色91偷拍| 精品毛片一区二区三区| av在线网址导航| 日韩和欧美的一区二区| 91日韩在线专区| 国产精品流白浆视频| 国产视频一二三区| 日本高清不卡中文字幕| 五月综合网站| 中文字幕第4页| 91麻豆精品国产综合久久久| 精品久久久亚洲| 青青艹在线观看| 国产精品资源在线观看| 婷婷六月天在线| 国产无遮挡免费视频| 尤物在线视频| 国产精品无码午夜福利| 91精品国产色综合久久不卡蜜臀| 香蕉久久久久久| 国产成人短视频在线观看| 97精品在线播放| 国产福利一区二区在线精品| 二个人看的毛片| cao在线观看| 91肉色超薄丝袜脚交一区二区| 诱受h嗯啊巨肉高潮| 亚洲国产精品久久久久婷蜜芽| 你懂的网站在线观看| 高清亚洲成在人网站天堂| 99国产精品久久久| 老司机午夜在线视频| 国产精品社区| 中文字幕在线视频播放| 欧美日韩一区在线| 欧美 日韩 人妻 高清 中文| 国内在线免费视频| av不卡在线观看| 精品街拍一区二区| 国产综合精品| 欧美福利影院| 中文字幕不卡在线播放| 六十路在线观看| 中文字幕欧美区| 97在线中文字幕| 亚洲国产精品毛片| 一级免费视频| 久久久人成影片免费观看| 欧美xxxx黑人又粗又长密月| 中文字幕中文字幕一区| 免费看污黄网站在线观看| 日韩精品视频免费专区在线播放| 国产美女搞久久| 国产在线观看一区二区| 在线免费视频一区二区| 性一交一乱一透一a级| 人操人视频在线观看| 久久免费视频99| 亚洲综合视频在线| 激情综合网址| 成人午夜黄色影院| 久久免费视频观看| 久精品免费视频| 亚洲精品一区视频| 91色综合久久久久婷婷| 台湾成人av| 黄色精品在线看| 8x国产一区二区三区精品推荐| 亚洲精品国产精品国| 亚洲第一区中文字幕| 亚洲自拍偷拍色图| 中文字幕亚洲欧美日韩在线不卡| 精品国产自在久精品国产| 国产91丝袜在线播放| 中文字幕在线免费看线人| 欧美一区三区二区| 亚洲国产视频一区二区| 岛国大片在线观看| h片免费观看| 97色在线播放视频| 深夜福利网站在线观看| 日本不卡1234视频| 欧美高清不卡在线| 日韩精品999| 99日韩精品| 在线播放日韩欧美| 久久综合伊人77777麻豆最新章节| 亚洲av永久无码国产精品久久| www亚洲色图| 久久久久久久波多野高潮日日| 人人妻人人澡人人爽欧美一区| 欧美日韩国产在线观看| 中文字幕高清一区| 在线能看的av网址| 国产精品露脸av在线| 免费福利在线| 在线成人av网站| 亚洲午夜精品| av天堂永久资源网| 精品久久久久久电影| 最新欧美电影| 毛片基地黄久久久久久天堂| 亚洲精品久久久久中文字幕二区| 一本色道久久99精品综合| 国产精品伊人日日| 亚洲妇女屁股眼交7| 亚洲精品偷拍视频| 亚洲福利在线观看| 亚洲乱码中文字幕久久孕妇黑人| 天堂中文在线www| 久无码久无码av无码| 成人动漫视频在线观看免费| 免费在线精品视频| 中文字幕一区二区不卡| 欧美一二三视频| 国产在线精品视频| 亚洲国产精品狼友在线观看| 亚洲国产日韩欧美在线99| 女同性恋一区二区| 欧美黄网免费在线观看| 亚洲国产精品免费| 国产精品乱码久久久久| av福利在线| 风间由美一区二区av101| 人偷久久久久久久偷女厕| 一本一本久久| 天天看天天干| 精品黑人一区二区三区国语馆| 日韩色级片先锋影音| 91女神在线视频| 国产精品一二三区| 国产精品美女999| 超级碰碰不卡在线视频| 国产欧美一区二区三区另类精品| 中国极品少妇videossexhd| 老司机午夜av| 日韩激情在线播放| 国产高清精品久久久久| 91香蕉嫩草影院入口| 美女被啪啪一区二区| www.日韩| 一级黄色片在线免费观看| 新版的欧美在线视频| 午夜久久资源| 国产性猛交普通话对白| xxxxx69·hd| 91网站免费入口| 99爱视频在线| 波多野结衣家庭教师在线观看| 日本少妇aaa| 韩日成人在线| 韩剧1988在线观看免费完整版| 日韩av在线免费看| 欧美系列一区| www视频在线观看免费| 在线视频日本亚洲性| 在线视频一区二区三区在线播放| 黄色不卡一区| 精品中文字幕一区二区三区| 波多结衣在线观看| 一区二区欧美视频| 不卡免费追剧大全电视剧网站| 日韩中文娱乐网| 天天干天天操天天干天天操| 午夜精品短视频| 亚洲第一偷拍网| 亚洲国产成人在人网站天堂| 国产精品亚洲综合在线观看| 久久精品国产亚洲aⅴ| 1000部精品久久久久久久久| 亚洲一区久久久| 午夜视频网站在线观看| 蜜桃欧美视频| 亚洲国产欧洲综合997久久| 久久综合免费视频影院| 欧美日本一区二区在线观看| 蜜桃一区二区三区在线观看| 久久国产免费看| 永久免费看mv网站入口| 好吊操这里只有精品| www视频完整版| 蜜桃精品一区二区| 中文字幕在线看片| 一本一道波多野结衣一区二区| 一区二区三区四区在线| 五月婷婷综合久久| 亚洲成人精品在线观看| 国产深夜福利| 少妇久久久久久久久久| 这里只有精品免费视频| 依依成人在线| 亚洲二区中文字幕| 国产精品自拍区| 98精品国产高清在线xxxx天堂| 久久亚洲欧美| 欧美亚洲国产视频小说| 亚洲精品乱码久久久久久按摩观| 亚洲美女主播视频免费观看| 男人天堂av网| 日韩一区二区三区四区五区六区| 欧美国产精品久久| 樱花视频在线免费观看| 国产婷婷一区二区三区| 久久亚洲精品国产精品紫薇| 精品久久一区二区三区| 国产福利视频网站| 日产精品久久久| 911av视频| 99re6在线精品视频免费播放| 国产欧美在线观看视频| 精品一区二区免费| 国产精品久久久av久久久| 日韩一级在线观看| 国产在线精品一区二区中文| 欧美亚洲综合一区| 精品免费国产一区二区三区四区| 在线日韩av观看| 三上悠亚在线资源| 国产一区二区女| 成人做爰69片免费看网站| 日韩欧美综合一区| 欧美二区乱c少妇| 少妇特黄a一区二区三区| 成年人影院在线观看| 欧美极品欧美精品欧美图片| 久久久久88色偷偷免费| 亚洲成人激情av| 亚洲国产第一| 777国产偷窥盗摄精品视频| 污视频在线看操| 亚洲欧洲日产国产网站| 调教+趴+乳夹+国产+精品| 偷偷www综合久久久久久久| 懂色av色香蕉一区二区蜜桃| 欧美丰满少妇xxxxx做受| 国产精品视频精品| 天堂网在线.www天堂在线视频| 美女在线视频一区二区| 亚洲国产成人av好男人在线观看| 日本性爱视频在线观看| 成人免费视频在线观看超级碰| 黑人巨大精品一区二区在线| 日韩欧美一区二区三区不卡视频| 亚洲一区欧美| 古装做爰无遮挡三级聊斋艳谭| 成人免费xx| 国产又粗又猛又黄又爽无遮挡| 欧美电影院免费观看| 国产91在线观看| 国产又大又长又粗又黄| 欧美视频在线观看免费网址| 国产精品亚洲二区在线观看| julia中文字幕一区二区99在线| av免费观看国产| 亚洲成av人片在线| 欧美在线观看天堂一区二区三区| 波多野结衣日韩| 国产视频不卡| 丰满诱人av在线播放| 91精品在线一区二区| www.av88| 九九在线精品| 激情视频在线播放| 国产伦精品一区二区三区免费视频| 免费在线观看的av网站| 久久久精品国产一区二区|