데이터 구조 - Lista Enlazada
Este es el primer post veremos 체인 테이블, conceptos fundamentales y algunas operaciones=).
개념 원리
체인 테이블의 하위 구조는datos lineales,donde sus elementos noest á n almacenados en bloques continuos de memoria,diferencea de los array,que estos son almacenados de bloques continuos de memoria,para entender mucho mejor vea la siguiente imagen이다.
Mientras que las Linked List son almacenadas en differentes sectores de la memoria y hace referencia a sus elementos mediantes punteros.
Que diferencia una 체인 테이블 de un 그룹
빈타하스
데스벤타하스
Tipos de 체인 테이블
Uso de las 체인 테이블
Les dejo los siguientes는para profundizar más sobre este aspecto에 연결됩니다.
Ejempo de codigo(코트린)
Primero crearemos una class Node el cual hara referencia a cada uno de los elementos en la link List.
class Node (var value: String, var next: Node? = null)
El siguiente paso es crear una clase que se encargue de gestiator las operaciones como agregar, remover 등.class MyLinkedList(var root: Node? = null) {
fun add(value: String) {
// nuevo nodo a crear
val node = Node(value)
// validar que el nodo padre no este vacio
if (root == null) {
root = node
return
}
// agregar elemento al final de la lista
var e = this.root
while (e?.next != null) {
e = e?.next
}
e?.next = node
}
fun unShift(value: String) {
// agregar elemento al inicio
// nuevo nodo a crear
val node = Node(value)
// agregar el nuevo nodo si el root esta vacio
if (this.root == null) {
this.root = node
} else {
// asignar el nuevo nodo como root
node.next = this.root
this.root = node
}
}
fun remove(value: String): Boolean {
// para remover un elemento siempre hay ubicarse
// en elemento anterior
var prev: Node? = null
var current = this.root
// eliminar el nodo root
if (current?.value == value) {
this.root = this.root?.next
return true
}
// buscar el nodo con el valor a eliminar y mantener el nodo anterior
while (current != null && current?.value != value) {
prev = current
current = current.next
}
// verificar si el nodo a eliminar existe
if (current == null) return false
prev?.next = current.next
return true
}
fun printValues() {
var e = this.root
while (e != null) {
println(e.value)
e = e.next
}
}
}
fun main() {
val myLinkedList = MyLinkedList()
myLinkedList.add("Kotlin")
myLinkedList.add("Javascript")
myLinkedList.add("Python")
myLinkedList.unShift("Java")
myLinkedList.remove("Javascript")
myLinkedList.printValues()
}
Estos son ejemplos sencillos para poder가 링크 목록을 설명합니다.Existe operaciones más avanzadas que podemos realizar y podemos defundizar en otro post.Si estáinterestado en defoundizar más,vea el final de post para consultar los recursos.Si quiere usar una Linked List en Kotlin no es necesario crearla usted mismo,puede usar la clase nativa de Java.
import java.util.*
fun main() {
val linkedList = LinkedList<String>()
linkedList.add("Kotlin")
linkedList.add("Java")
val iterator: Iterator<String> = linkedList.iterator()
while (iterator.hasNext()) {
println(iterator.next())
}
}
Mis Recommendaciones para poder entender más las estrustructuras de datos es practicar,intentent buscar ejercicios en páginas comoHackerrank,Leetcode.comoGeeksforgeeksdonde puede consultar ejempos y resolver ejercicios references a cada sección.Existe muchas páginas de este estilo no importa cual use lo important es practicar.Espero que les halla gustado este post,si tiene alguna sugerencia o corrección no dude es escribirme=).
차례로 돌아가다
Reference
이 문제에 관하여(데이터 구조 - Lista Enlazada), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ronnymedina/estructura-de-datos-linked-list-lista-enlazada-2h9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)