Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Listas enlazadas - k-esimo elemento
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
/* Dada una lista, indicar el elemento contenido en el cuarto nodo. */ #include <iostream> using namespace std; struct Nodo { int dato; Nodo* siguiente; }; /* Dado el puntero inicial a una lista y el puntero a un nuevo nodo que aún no está en la lista, inserta este nuevo nodo al principio. Retorna el puntero inicial. */ Nodo* insertar(Nodo* inicio, Nodo* nuevo){ nuevo->siguiente = inicio; return nuevo; } /* Iterativamente, genera un nuevo nodo con un dato y el siguiente en nullptr, y lo envía a una función que inserta ese nodo en la lista. Retorna el puntero inicial. */ Nodo* carga(Nodo* inicio) { Nodo* nuevo; for (int numero = 1; numero < 10; numero += 2){ nuevo = new Nodo; nuevo->dato = numero; nuevo->siguiente = nullptr; inicio = insertar(inicio, nuevo); } return inicio; } /* Imprime en pantalla todos los elementos de la lista. */ void imprimir(Nodo* inicio){ for (Nodo* aux = inicio; aux != nullptr; aux = aux->siguiente){ cout << aux->dato << " - "; } cout << endl; } /* Busca el nodo en la posición dada por k, y retorna ese nodo. Si no se encuentra (por ejemplo, si la lista tiene menos de "k" nodos) retorna nullptr. */ Nodo* k_esimo(Nodo* inicio, int k){ int c = 0; Nodo* aux = inicio; for (; aux != nullptr; aux = aux->siguiente){ c++; if (c == k){ break; } } return aux; } /* Función principal del programa. Se inicializa un puntero inicial a una lista y se llama a funciones para cargarla y realizar otras operaciones */ int main() { Nodo* inicio = nullptr; inicio = carga(inicio); imprimir(inicio); Nodo* k_esimo_nodo = k_esimo(inicio, 4); if (k_esimo_nodo != nullptr) cout << "Dato en el cuarto nodo: " << k_esimo_nodo->dato << endl; else cout << "No hay suficientes nodos" << endl; }
g++
Show compiler warnings
[
+
] Compiler args
[
+
]
Show input
Compilation time: 0.44 sec, absolute running time: 0.08 sec, cpu time: 0.02 sec, memory peak: 3 Mb, absolute service time: 0,54 sec
edit mode
|
history
|
discussion
9 - 7 - 5 - 3 - 1 - Dato en el cuarto nodo: 3