真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java單向鏈代碼 java單向鏈表和雙向鏈表區(qū)別

java 什么是單向鏈表 和 雙向鏈表 ?

鏈表是類似一種數(shù)據(jù)結(jié)構(gòu)的東西,就是分別存放有地址以及數(shù)據(jù)單項鏈表一般是上一個存放地址的地方存放下一個節(jié)點的地址,而雙向的就是有兩個存放地址的地方,分別存上一個以及下一個的地址。大概是這樣子

成都創(chuàng)新互聯(lián)專注于壽陽企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。壽陽網(wǎng)站建設(shè)公司,為壽陽等地區(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

java單鏈表根據(jù)內(nèi)容刪除節(jié)點

代碼:

//?刪除下標為index的節(jié)點

public?void?remove(int?index)?{

if?(index?=?modCount)?{

//?拋異常

System.out.println("indexOutOfBoundsException!");//?最好自定義異常拋出,這里演示

return;

}

Node?node?=?head;

//?如果節(jié)點為第一個節(jié)點

if?(index?==?0)?{

head?=?head.next;?//?將頭節(jié)點指向第二個節(jié)點

modCount--;

return;

}

//?如果節(jié)點為最后一個節(jié)點,找到最后一個節(jié)點的前一個節(jié)點,不用管

if?(index?==?modCount?-?1)?{

System.out.println("ddd");

//?找到最后一個節(jié)點的前一個節(jié)點

int?j?=?0;

while?(node?!=?null??j??index?-?1)?{

//?最后一個節(jié)點的前一個節(jié)點

node?=?node.next;

j++;

}

last?=?node;?//?最后一個節(jié)點設(shè)置為前一個節(jié)點

modCount--;

return;

}

//?如果節(jié)點為中間節(jié)點

int?j?=?0;

while?(node?!=?null??j??index?-?1)?{

//?查找被刪除的節(jié)點的前一個節(jié)點

node?=?node.next;

j++;

}

node.next?=?node.next.next;?//?被刪除節(jié)點的下一個節(jié)點設(shè)置為被刪除節(jié)點的下下個節(jié)點

modCount--;

}

java單向鏈表

java.util.Linkedlist是雙向鏈表,當然也就包括了單鏈表的功能,你可以去看他怎么寫的啊

public class SingleLinkedListE {

private EntryE first, last;

private int size = 0;

public void add(E element) {

EntryE newEntry = new EntryE(element, null);

if (first == null) {

first = last = newEntry;

} else {

last.next = newEntry;

last = newEntry;

}

++size;

}

public E get(int index) {

if (index 0 || index = size)

throw new IndexOutOfBoundsException("Index: "+index+

", Size: "+size);

EntryE e = first;

for (int i = 0; i index; ++i)

e = e.next;

return e.data;

}

private static class EntryE {

Entry(E data, EntryE next) {

this.data = data;

this.next = next;

}

E data;

EntryE next;

}

}

Java單向鏈表代碼。

這是我寫的一個差不多,你看一下吧:

package com.test.list;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class LinkedList {

public static void main(String[] args) {

MyList l = new MyList();

MyListNode node = l.createList();

l.printNode(node);

//l.searchNode(node, 4);

//node = l.insertNode(node, 3, "g");

//l.printNode(node);

node = l.deleteNode(node, "d");

l.printNode(node);

}

}

class MyListNode {

public String data;

public MyListNode nextNode;

}

class MyList {

public MyListNode createList() {

MyListNode node = new MyListNode();

MyListNode q ,p;

q = new MyListNode();

q = node;

while (true) {

String s = null;

try {

BufferedReader br = new BufferedReader(new InputStreamReader(

System.in));

System.out.println("請輸入節(jié)點數(shù)據(jù):");

s = br.readLine();

if (s.equals("0")) {

break;

} else {

p = new MyListNode();

p.data = s;

p.nextNode = null;

q.nextNode = p;

q = p;

}

} catch (Exception e) {

e.printStackTrace();

}

}

return node;

}

public void printNode(MyListNode node) {

MyListNode p = node.nextNode;

while (p!= null) {

System.out.print(" "+p.data);

p = p.nextNode;

}

}

public void searchNode(MyListNode node, int i){

MyListNode p = node.nextNode;

int j = 1;

while (p != null ji) {

p = p.nextNode;

j++;

}

if( p == null || ji) {

System.out.println("error");

}

System.out.println(" --"+p.data+"--");

}

public MyListNode insertNode(MyListNode node, int i ,String s) {

MyListNode p = node.nextNode;

int j = 1;

while (p != null ji-1) {

p = p.nextNode;

j++;

}

if( p == null || ji-1) {

System.out.println("error");

}

MyListNode n = new MyListNode();

n.data = s;

n.nextNode = p.nextNode;

p.nextNode = n;

return node;

}

public MyListNode deleteNode(MyListNode node ,String s) {

MyListNode p = node;

while(p.nextNode != null !p.nextNode.data.equals(s)) {

p = p.nextNode;

}

p.nextNode = p.nextNode.nextNode;

return node;

}

}

/*逆位序創(chuàng)建

public MyListNode createList() {

MyListNode node = new MyListNode();

node.nextNode = null;

while(true) {

String s = null;

try {

BufferedReader br = new BufferedReader(new InputStreamReader(

System.in));

System.out.println("請輸入節(jié)點數(shù)據(jù):");

s = br.readLine();

if(s.equals("0")) {

break;

}else {

MyListNode n = new MyListNode();

n.data = s;

n.nextNode = node.nextNode;

node.nextNode = n;

}

} catch (Exception e) {

e.printStackTrace();

}

}

return node;

}

*/

Java中單向鏈表怎么將節(jié)點插入到指定位置?

你可能對鏈表的數(shù)據(jù)結(jié)構(gòu)并不是很清楚?給你個寫示例代碼理解下,最好打個斷點每一步跟蹤理解一下

//class?ListNode?{

//????int?val;

//????jdb.ListNode?next;

//????ListNode(int?x)?{?val?=?x;?}

//}

public?class?Main?{

public?static?void?main(String[]?args)?throws?Exception?{

//現(xiàn)在有一個鏈表1-2-3

ListNode?listNode?=?new?ListNode(1);

listNode.next?=?new?ListNode(2);

listNode.next.next?=?new?ListNode(3);

listNode.next.next.next?=?new?ListNode(4);

//我們來打印一下

printListNode(listNode);

//我現(xiàn)在要在2后面插入9

boolean?flag?=?insertVal(listNode,?3,?9);

System.out.println("是否插入成功:"+flag);

//再來打印一下

printListNode(listNode);

}

/**

*

*?@param?listNode//原鏈表

*?@param?pre//插入前的位置

*?@param?val//插入的值

*/

public?static?boolean?insertVal(ListNode?listNode,Integer?pre,?Integer?val)?{

boolean?rs?=?false;

//找插入前的位置

while?(listNode?!=?null??listNode.val?!=?pre)?{

listNode?=?listNode.next;

}

if?(listNode?!=?null?listNode.val==pre)?{

//找到啦

//先把原鏈表后的數(shù)據(jù)保存起來?這邊就是3-4

ListNode?temp?=?listNode.next;

//把要插入的值連上,再把原來保存的值連上

listNode.next?=?new?ListNode(val);

listNode.next.next?=?temp;

//上面代碼中?listNode的值是2,listNode.next的值是9,listNode.next.next的值就是剛才保存的臨時鏈表3-4

//插入成功標記一下哦

rs=true;

}

return?rs;

}

/**

*?打印呀

*?@param?listNode

*/

public?static?void?printListNode(ListNode?listNode)?{

if?(listNode?!=?null)?{

ListNode?temp?=?listNode;

while?(temp?!=?null)?{

System.out.println(temp.val);

temp?=?temp.next;

}

}

System.out.println("-------------");

}

}


文章標題:java單向鏈代碼 java單向鏈表和雙向鏈表區(qū)別
地址分享:http://weahome.cn/article/dodspdg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部