Maison  >  Article  >  Java  >  Qu'est-ce qu'une liste chaînée en Java

Qu'est-ce qu'une liste chaînée en Java

little bottle
little bottleoriginal
2019-05-21 15:54:048939parcourir

Une liste chaînée est une structure de données organisée selon la relation logique entre les nœuds d'éléments. Cet article vous parlera de la liste chaînée en Java. Les amis intéressés peuvent en apprendre davantage.

Qu'est-ce qu'une liste chaînée en Java

Liste chaînée est une structure de données organisée selon la relation logique des nœuds d'éléments. Les listes chaînées peuvent être utilisées pour stocker plusieurs données, ce qui est similaire au concept de tableaux.

Mais le tableau lui-même présente un inconvénient : la longueur du tableau est fixe et ne peut pas être modifiée. Lorsque la longueur est fixe, le premier choix est certainement le tableau, mais dans le développement réel, la longueur du contenu. à enregistrer est souvent incertain, alors vous pouvez utiliser une structure comme une liste chaînée au lieu d'un tableau.

La liste chaînée est la structure de données la plus simple. Son objectif principal est de sauvegarder plusieurs données en s'appuyant sur des relations de référence. Donc, en supposant que les données à enregistrer maintenant sont une chaîne (type référence), vous pouvez enregistrer en fonction. à la relation indiquée sur la figure.

Quest-ce quune liste chaînée en Java

Code de liste chaînée Java :

//每一个链表实际上就是由多个节点组成的
public class Node { // 定义一个节点
	private String data; // 用于保存数据
	private Node next; // 用于保存下一个节点
	// 每一个Node类对象都必须保存有响应的数据
 
	public Node(String data) {
		this.data = data;
	}
 
	public void setNext(Node next) {
		this.next = next;
	}
 
	public Node getNext() {
		return this.next;
	}
 
	public String getData() {
		return this.data;
	}
 
	// 实现节点的添加
	// 第一次调用(Link):this代表Link.root
	// 第二次调用(Node):this代表Link.root.next
	// 第三次调用(Node):this代表Link.root.next.next
	public void addNode(Node newNode) {
		if (this.next == null) { // 如果只有一个节点
			this.next = newNode; // 保存新节点
		} else { // 当前节点后面还有节点
			// 当前节点的下一个节点继续保存
			this.next.addNode(newNode);
 
		}
	}

// 第一次调用(Link):this代表Link.root
	// 第二次调用(Node):this代表Link.root.next
	// 第三次调用(Node):this代表Link.root.next.next
	public void printNode() {
		System.out.println(this.data);// 输出当前数据
		if (this.next != null) {// 如果还有下一个节点
			this.next.printNode();// 输出下一节点
		}
	}
}
public class LinkDemo {
 
	public static void main(String[] args) {
	 Link link = new Link() ;
	 link.add("hello");   //存放数据
	 link.add("world");
	 link.add("wwww");
	 link.print();     //展示数据
		
	}
	
}
//负责数据的设置和输出
public class Link {
	private Node root; //根节点
//增加数据
  public void add (String data){
	  //为了设置数据的先后关系,所以将data包装在一个Node类对象
	  Node newNode = new Node(data);
	  if(this.root == null ){  //一个链表只有一个根节点
		  this.root = newNode;  //将新的节点设置为根节点
	  }else{  
		  //从root节点后找到合适的位置
		  this.root.addNode(newNode);
	  }
  }
//输出数据
public void print(){
	if( this.root != null ){
		this.root.printNode();
	}
}
}

Recommandations d'apprentissage associées : Tutoriel de base Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Qu'est-ce qu'un objet Java ?Article suivant:Qu'est-ce qu'un objet Java ?