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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

數(shù)據(jù)結(jié)構(gòu)(五)雙鏈表

2019-11-10 20:06:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

java模擬雙鏈表結(jié)構(gòu).實(shí)現(xiàn)增刪改查等方法.

/** * 雙鏈表 */public class MyDoubleLink<T> implements Iterable<T>{ /** *節(jié)點(diǎn)的封裝類 */ PRivate class Node{ Node prev;//上一個(gè)節(jié)點(diǎn) T data;//數(shù)據(jù) Node next;//下一個(gè)節(jié)點(diǎn) } private Node head;//頭節(jié)點(diǎn) private Node rear;//尾節(jié)點(diǎn) /** * 添加數(shù)據(jù) * @param data */ public void add(T data){ //1.創(chuàng)建新的節(jié)點(diǎn) Node node = new Node(); //2.把數(shù)據(jù)放入節(jié)點(diǎn)中 node.data = data; //3.把節(jié)點(diǎn)鏈接到鏈表中 //從鏈表的尾部添加數(shù)據(jù) if (rear == null) { //說(shuō)明鏈表是空,當(dāng)前節(jié)點(diǎn)就成為頭節(jié)點(diǎn) rear = node; head = node; }else { //有頭節(jié)點(diǎn) rear.next = node; node.prev = rear; rear = node; } } /** * 重寫toString方法 */ public String toString(){ StringBuffer sb = new StringBuffer("["); //遍歷鏈表中的所有數(shù)據(jù) Node node = head;//從頭節(jié)點(diǎn)開(kāi)始遍歷數(shù)據(jù) while (node != null) { //有數(shù)據(jù) //拼接數(shù)據(jù) //判斷是否是尾節(jié)點(diǎn) if (node != rear) { sb.append(node.data+", "); }else { sb.append(node.data); } //條件的改變 node = node.next; } sb.append("]"); return sb.toString(); } /** * 刪除數(shù)據(jù) * 1.只有一個(gè)數(shù)據(jù) * 2.刪除頭節(jié)點(diǎn) * 3.刪除數(shù)據(jù) * 4.刪除尾節(jié)點(diǎn) * @param data */ public void remove(T data){ //1.查找數(shù)據(jù)是否存在,查找數(shù)據(jù)所在的節(jié)點(diǎn) Node node = findData(data); //2.判斷node是否存在 if (node != null) { //存在 remove(node); } } /** * 刪除節(jié)點(diǎn) * @param node */ public void remove(Node node){ if (node == head && node == rear) { //1.只有一個(gè)數(shù)據(jù) head = null; rear = null; }else if (node == head) { //2.刪除頭節(jié)點(diǎn),后面肯定有節(jié)點(diǎn) head = head.next; head.prev = null; }else if (node == rear) { //3.刪除尾節(jié)點(diǎn),前面肯定有節(jié)點(diǎn) rear = rear.prev; rear.next = null; }else { //4.刪除數(shù)據(jù),前后肯定有節(jié)點(diǎn) node.prev.next = node.next; node.next.prev = node.prev; } } /** * 查找數(shù)據(jù)所在節(jié)點(diǎn) * @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ù)下一個(gè) 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ù)(在對(duì)象的hash值相同的情況下修改對(duì)象屬性值) * @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; } /** * 重寫迭代器方法,可以用增強(qiáng)for */ @Override public Iterator iterator() { class MyIte implements Iterator{ private Node node = head;//從頭節(jié)點(diǎn)遍歷 @Override public boolean hasNext() { return node != null; } @Override public Object next() { Object data = node.data;//獲取數(shù)據(jù) node = node.next;//設(shè)置下一個(gè)數(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é)點(diǎn) Node node = new Node(); //2.把數(shù)據(jù)放入節(jié)點(diǎn)中 node.data = data; //3.把節(jié)點(diǎn)鏈接到鏈表中 //從鏈表的尾部添加數(shù)據(jù) if (rear == null) { //說(shuō)明鏈表是空,當(dāng)前節(jié)點(diǎn)就成為頭節(jié)點(diǎn) rear = node; head = node; }else { //有頭節(jié)點(diǎn) head.prev = node; node.next = head; head = node; } } /** * 排序添加數(shù)據(jù),添加數(shù)據(jù)時(shí)自動(dòng)排序 * @param data */ public void addSort(T data){ addSortBlock(data,null); } /** * 查找比data大的第一個(gè)節(jié)點(diǎn) * @param data * @return */ private Node findNext(T data){ //從頭節(jié)點(diǎn)開(kāi)始找 Node node = head; while (node != null) { //比較 if (compare(node.data, data)>0) { break; }else { //繼續(xù)找下一個(gè) node = node.next; } } return node; } /** * 查找比data大的第一個(gè)節(jié)點(diǎn)(使用比較器) * @param data * @param comp 比較器 * @return */ private Node findNext(T data,Comparator<T> comp){ //從頭節(jié)點(diǎn)開(kāi)始找 Node node = head; while (node != null) { //比較 if (comp.compare(node.data, data)>0) { break; }else { //繼續(xù)找下一個(gè) node = node.next; } } return node; } /** * 比較兩個(gè)數(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ù)實(shí)現(xiàn)比較器 c1 = (Comparable)obj1; c2 = (Comparable)obj2; }else { //沒(méi)有實(shí)現(xiàn)比較器 c1 = obj1.toString(); c2 = obj2.toString(); } return c1.compareTo(c2); } /** * 添加數(shù)據(jù)并進(jìn)行排序(使用比較器) * @param data * @param comparable 比較器 */ public void addSort(T data,Comparator<T> comparable){ addSortBlock(data,comparable); } /** * 添加數(shù)據(jù)并進(jìn)行排序(私有方法) * @param data 傳入數(shù)據(jù) * @param comp 比較器 */ private void addSortBlock(T data,Comparator<T> comp){ //1.創(chuàng)建新的節(jié)點(diǎn) Node node = new Node(); //2.把數(shù)據(jù)放入節(jié)點(diǎn)中 node.data = data; Node next = null; //2.找位置(從小到大)添加數(shù)據(jù) if (comp != null) { next= findNext(data,comp); }else { next = findNext(data); } if (next != null) { //找到下一個(gè)節(jié)點(diǎn),把data放到next節(jié)點(diǎn)前 if (next == head) { addFirst(data); }else { next.prev.next = node; node.next = next; node.prev = next.prev; next.prev = node; } }else { //沒(méi)找到下一個(gè)節(jié)點(diǎn),data最大 add(data); } }}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产在线天堂www网在线观看| 免费yellow网站| 好男人官网在线观看| 日韩伦理一区二区| 日韩中文字幕在线观看| 亚洲欧美日韩国产综合在线| 1000部国产精品成人观看| av资源在线观看免费高清| 4444在线观看| 国产精品入口免费麻豆| 91亚洲国产成人久久精品麻豆| 色妞www精品视频| www国产成人免费观看视频 深夜成人网| 2018中文字幕在线| 欧美午夜a级限制福利片| 国产精品yjizz视频网一二区| 99久久久国产精品免费调教网站| 性欧美高清come| 国产aⅴ精品一区二区三区色成熟| 精品国产一区二区三区久久久| 日韩精品综合一本久道在线视频| 欧美精品一区二区不卡| 国产毛片久久| 久久无码高潮喷水| 性色a∨人人爽网站| 久久久国产一级片| 亚洲欧美色图视频| 国产激情在线视频| 户外露出精品视频国产| 年下总裁被打光屁股sp| 久久影院资源网| av影片在线| 成人免费观看49www在线观看| 黄瓜视频免费观看在线观看www| 99精品在免费线中文字幕网站一区| 日本在线三级| 亚洲の无码国产の无码步美| 精品一区二区三区的国产在线观看| 国产女女做受ⅹxx高潮| 国产综合色区在线观看| 中文字幕中文字幕在线中一区高清| 国产精品区在线| 欧美一级日韩免费不卡| 日本搞黄视频| 精品国产第一区二区三区观看体验| 国产福利视频一区二区| 亚洲大黄网站| 欧美一级片中文字幕| 亚洲精品成a人在线观看| 亚洲一二三四区不卡| av在线播放网址| 蜜桃久久久久久久| 日本精品一区二区三区高清 久久| 91成人在线免费| 在线免费福利| www.四虎精品| 亚洲乱妇老熟女爽到高潮的片| 国产欧美一区二区| youjizz国产精品| 能看毛片的网站| 99久久久无码国产精品免费蜜柚| 激情欧美成人久久综合小说| 欧美日韩免费一区| 国产精品久久久久久麻豆一区软件| 日本韩国视频一区二区| 成人免费网站观看| 精品无码久久久久国产| 久久99视频精品| 成人黄色av电影| 欧美日韩一区二区三区电影| 亚洲国产精品视频在线观看| 高清不卡一二三区| 26uuu久久综合| 99国产精品久久久久老师| 女女同性女同一区二区三区91| 欧美激情在线精品一区二区三区| 欧美爱爱视频网站| 蜜臀久久99精品久久久画质超高清| 香蕉视频免费看| 精品视频免费在线| 头脑特工队2免费完整版在线观看| 日韩人体视频一二区| 午夜时刻免费入口| 波多野结衣一区二区三区四区| 国产精品视频1区| 狠狠色香婷婷久久亚洲精品| 亚洲性av网站| 国产日产欧美一区二区视频| 91pony九色| 国产高潮久久久| 91老司机在线| 欧美特级黄色录像| 公交车上扒开嫩j挺进去| 亚洲精品自拍偷拍| 久久精品视频在线免费观看| 日韩美女视频19| 日韩欧美一级二级三级久久久| 国产免费嫩草影院| 中文文字幕文字幕高清| 久久人人爽人人爽爽久久| 无码人妻丰满熟妇区五十路百度| 欧美一级性视频| www.se五月| av免费在线一区| 污污网站免费在线观看| 久久中文字幕二区| 欧美日韩国产中文字幕在线| 欧美黄色影院| 毛片在线网址播放| 国产黄色av片| 欧美激情国内自拍| 午夜在线视频播放| 亚洲黄色av片| 91精品免费看| 欧美日韩一区成人| 99成人国产精品视频| 亚洲视频手机在线观看| 欧美日韩一区在线| 国产无遮挡又黄又爽免费网站| 中文字幕在线视频第一页| 精品国产伦一区二区三区观看说明| 2021久久精品国产99国产精品| 日本一级淫片免费放| 欧美e片成人在线播放乱妇| 免费观看一区二区三区| 欧美亚洲色图校园春色| 黄色小视频在线免费观看| 老司机一区二区三区| 亚洲狠狠爱一区二区三区| 亚洲欧洲美洲综合色网| 少妇又紧又色又爽又刺激视频| 无套内谢丰满少妇中文字幕| 91久久线看在观草草青青| 91影院未满十八岁禁止入内| 欧美xxxxx在线视频| 亚洲精品电影网在线观看| 久久婷婷色综合| 人妻熟女aⅴ一区二区三区汇编| 国产精品视频免费一区| 国产九九九视频| 亚洲欧美成人一区| 亚洲天堂av网站| 国产日韩欧美精品在线| 91视频.com| 久久久久se| 国产精品99视频| 日韩高清dvd碟片| 欧美日韩裸体免费视频| 欧美艾v福利视频在线观看| 欧美69xxxxx| 日韩国产成人| 不卡的av电影| 一区三区自拍| 国产黄在线看| 一区二区三区四区精品视频| 国产高清精品二区| 美女黄视频在线播放| 精品在线视频一区二区| 国产视频一区二| 中日韩视频在线观看| 国产在线a不卡| 奇米精品一区二区三区在线观看| 污黄色在线观看| 男女视频在线看| 日本不卡一二三区黄网| 麻豆成人久久精品二区三区小说| av资源中文在线| 性猛交╳xxx乱大交| 日本成人福利| 三上悠亚一区二区| 精品av中文字幕在线毛片| 国产福利小视频在线| 亚洲国产午夜伦理片大全在线观看网站| 国内在线观看一区二区三区| 视频一区免费在线观看| 午夜激情av在线| 中文字幕在线视频精品| 欧美亚洲国产视频| 中文有码在线播放| 激情在线观看视频| 国产69精品久久久久777| 91精品在线观看国产| 精品国产aⅴ麻豆| 亚洲欧洲日韩综合一区二区| 91极品视觉盛宴| 午夜精品久久久久久久96蜜桃| 欧美肥婆xxxx欧美另类| 精品国产无码AV| av在线电影播放| 久久久精品有限公司| 欧美一级午夜免费电影| 亚洲国产欧美91| 免费观看亚洲| 久草视频在线观| 国产精品日韩欧美一区二区| av电影在线观看完整版一区二区| 美女国产精品| 二吊插入一穴一区二区| 日本久久精品电影| 欧美日韩国产黄| 最新国产の精品合集bt伙计| 一本加勒比hezyo黑人| xf在线a精品一区二区视频网站| 国产亚洲综合在线| 粉嫩aⅴ一区二区三区四区| 亚洲aaa视频| 亚洲色图17p| 久久精品国产精品亚洲色婷婷| 国产精品jvid在线观看| 日本视频免费高清一本18| 亚洲美女免费在线| 菠萝菠萝蜜在线视频免费观看| 性折磨bdsm欧美激情另类| 麻豆网站免费观看| 日韩在线不卡av| 成年丰满熟妇午夜免费视频| 国产综合精品在线| 色播一区二区| 欧美日韩aaaa| 无码中文字幕色专区| 四虎永久在线精品| 在线观看欧美日韩电影| 久久久国产免费| 欧美精品亚洲二区| 黄色电影免费在线看| 亚洲成人av中文| 精品人妻一区二区三区四区不卡| 久久中文字幕av| 国产成人免费看一级大黄| 久久久国产精品入口麻豆| 欧美日韩国产页| 久久久久久久久久久久91| 在线一区二区三区四区| www.久久精品.com| 波多野结衣在线高清| 亚洲最大福利网| 久久蜜臀中文字幕| 波多野结衣不卡| 91麻豆国产在线观看| 在线免费观看的av| 久久成人在线| 国产精品h片在线播放| 东热在线免费视频| 国产男男gay体育生白袜| 一区二区视频免费在线观看| 一级全黄肉体裸体全过程| 波多野结衣中文字幕久久| 亚洲天堂久久av| 亚洲国产精华液| 国产精品入口麻豆| 男人的j进女人的j一区| 国产一区二区三区乱码| 国产女大学生av| 久久精品国产一区二区电影| 欧美一区三区四区| 91精品人妻一区二区三区四区| 亚洲女人天堂色在线7777| 在线观看视频黄色| 久久久精品亚洲| 国产成人无码www免费视频播放| 麻豆精品一区二区av白丝在线| 99久久亚洲一区二区三区青草| 免费能直接在线观看黄的视频| 国产一级二级在线| 91成人免费观看网站| 国产在线视频一区二区三区| 日本在线观看免费| www.麻豆av.com| 一区二区高清视频在线观看| 免费成人在线看| 国产精品白丝jk白祙喷水网站| 情se视频网在线观看| 91欧美一区二区| 自由的xxxx在线视频| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲an天堂an在线观看| 久久久亚洲精品无码| 91视频久色| 日韩av一区二区在线播放| 久久久99免费视频| 国产伦精品一区二区三区视频免费| av综合网页| 粉嫩高清一区二区三区精品视频| 在线不卡免费视频| 午夜影院在线观看欧美| 黄色成人一级片| 精品国内自产拍在线视频| 午夜精品区一区二区三| 少妇人妻互换不带套| bbw在线视频| 色先锋av资源中文字幕| 国产精品永久入口久久久| 欧美成人一区二区三区片免费| 久久久久久av无码免费看大片| 久久久久久12| 99视频在线免费播放| 国产厕所精品在线观看| 娇妻高潮浓精白浆xxⅹ| 国产精品影视天天线| 国产精品欧美综合在线| 亚洲制服丝袜在线| 影音先锋在线一区| 99久久九九| 国产午夜激情视频| 中文字幕视频一区二区在线有码| 欧美一级二区| 亚洲夜夜综合| 日韩肉感妇bbwbbwbbw| 日韩欧美在线免费| 狠狠色丁香婷婷综合久久片| 成人看片爽爽爽| 9l视频自拍蝌蚪9l视频| www亚洲欧美| 国产精品怡红院| 香蕉av777xxx色综合一区| 久热久精久品这里在线观看| 欧美视频精品一区| www.色就是色| 人人干人人草| 四虎4hu新地址入口2023| 中文字幕第315页| 国产一区二区精品福利地址| 理论片鲁丝二区爱情网| 成人在线观看免费高清| 最近中文字幕免费mv2018在线| 国产毛片久久久久久久| 成人乱人伦精品视频在线观看| 中日韩一区二区三区|