java單向鏈代碼 java單向鏈表和雙向鏈表區別

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

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

成都創新互聯專注于壽陽企業網站建設,成都響應式網站建設公司,電子商務商城網站建設。壽陽網站建設公司,為壽陽等地區提供建站服務。全流程按需定制制作,專業設計,全程項目跟蹤,成都創新互聯專業和態度為您提供的服務

java單鏈表根據內容刪除節點

代碼:

//?刪除下標為index的節點

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

if?(index?=?modCount)?{

//?拋異常

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

return;

}

Node?node?=?head;

//?如果節點為第一個節點

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

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

modCount--;

return;

}

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

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

System.out.println("ddd");

//?找到最后一個節點的前一個節點

int?j?=?0;

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

//?最后一個節點的前一個節點

node?=?node.next;

j++;

}

last?=?node;?//?最后一個節點設置為前一個節點

modCount--;

return;

}

//?如果節點為中間節點

int?j?=?0;

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

//?查找被刪除的節點的前一個節點

node?=?node.next;

j++;

}

node.next?=?node.next.next;?//?被刪除節點的下一個節點設置為被刪除節點的下下個節點

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("請輸入節點數據:");

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;

}

}

/*逆位序創建

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("請輸入節點數據:");

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中單向鏈表怎么將節點插入到指定位置?

你可能對鏈表的數據結構并不是很清楚?給你個寫示例代碼理解下,最好打個斷點每一步跟蹤理解一下

//class?ListNode?{

//????int?val;

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

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

//}

public?class?Main?{

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

//現在有一個鏈表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);

//我現在要在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)?{

//找到啦

//先把原鏈表后的數據保存起來?這邊就是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單向鏈表和雙向鏈表區別
網頁路徑:http://m.kartarina.com/article16/dodspdg.html

成都網站建設公司_創新互聯,為您提供自適應網站企業建站做網站Google網站設計公司App設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司
主站蜘蛛池模板: 亚洲中文字幕无码中文| 无码成A毛片免费| 免费看成人AA片无码视频羞羞网| 亚洲精品中文字幕无码蜜桃| 日韩人妻无码一区二区三区久久| HEYZO无码中文字幕人妻| 亚洲国产精品无码久久青草| 亚洲国产成人无码av在线播放 | 亚洲无码黄色网址| 亚洲av永久无码精品国产精品| 亚洲精品GV天堂无码男同| 久久久久无码精品| 精品无码成人久久久久久| 久久午夜夜伦鲁鲁片免费无码| 免费a级毛片无码av| 久久亚洲精品无码VA大香大香| 永久免费av无码入口国语片| 爽到高潮无码视频在线观看| 亚洲熟妇无码AV不卡在线播放| 国产免费无码AV片在线观看不卡| 日韩成人无码一区二区三区| 久久精品中文字幕无码绿巨人 | 天堂无码在线观看| 精品人妻系列无码一区二区三区 | 亚洲精品国产日韩无码AV永久免费网 | 亚洲欧洲无码AV不卡在线| 在线播放无码后入内射少妇| 亚洲av无码成人精品区在线播放| 无码AV大香线蕉| 亚洲AV无码片一区二区三区 | 亚洲精品久久久久无码AV片软件| 国产精品无码无片在线观看| 国产网红主播无码精品| 午夜成人无码福利免费视频| 日韩av无码成人无码免费| 久久精品无码一区二区三区免费| 亚洲AV无码无限在线观看不卡| 6080YYY午夜理论片中无码| 日韩人妻无码精品一专区| 亚洲国产超清无码专区| 在线观看成人无码中文av天堂|