bool search(node *list , int n ){ bool flag = false; node *now = new node(); now = list; while(now != NULL){ if(now->dato == n){ flag = true; } now = now->next; } return flag; } no podria ser asi para poder usar la funcion en otros casos?
@@agustinlyon8173 Hola. Lo de "era". ¿Es que le ha pasado algo? Veo que ha dejado de subir vídeos, pero no se la causa. Si lo sabes te agradezco que me lo comentes. Un saludo.
men grasias por los tutoriales jajajja yo recien me entero que eres de la unt que chevere yo tambien aunque no estudio informatica ni sistemas pero ese será mi proximo paso y grasias de nuevo por que con estos tutoriales me di cuenta que mi carrera es sistemas :D
el problema de esto es que si (*pl)->dato=nro, se ejecutaria el while y el nodo pl correria una posicion, while(*pl!=NULL && (*pl)->datosiguiente; y luego cuando entre al if no encontraria una igualdad en (*pl)->dato==nro if(*pl!=NULL && (*pl)->dato==nro) Si no me equivoco lo correcto sería poner el while de la siguiente manera: while(*pl!=NULL && (*pl)->datosiguiente;
Para que la busqueda sea más eficiente lo ideal sería agregar un break dentro del condicional, ya que en el caso de que actual->dato sea menor a n, el while seguirá ejecutandose hasta llegar al NULL. Con el break; la sentencia terminará en el mismo instante en el que actual->dato==n. --------------------------------- while (actual!=NULL) { if (actual->dato==n) { flag = true; *break* ; } actual = actual->sgte; }
Hola, se podría mejorar el algoritmo de busqueda si la linea siguiente a band = true; sea break; para romper el ciclo. En pocos elementos no se nota pero en volumenes mayores puedeser representativo.
no se puedas ayudarme necesito que en lista se guarde una palabra no un caracter como lo hago , cuando lo hago solo me guarda un caracter no la palabra
Cuando yo pongo Nodo *actual = New Nodo() no me agarra, pero le pongo con struct me sale que return 1 con el error (.text+0x7f) Sabes porque me sale eso?
el ya esta muerto literalmente pero el mensaje de error que proporcionas, "(.text+0x7f)", es un error genérico que no proporciona suficiente información para determinar cuál es el problema específico en tu código. Puede haber varios factores que contribuyan al error, como errores de sintaxis, problemas en la definición de la estructura, problemas con punteros, entre otros.
@@sthifen2237 gracias, ahora no recuerdo que hice pero unos meses despues de esto (y haber utilizado un modelo diferente) pude lograr que funcionara, pero nunca me di cuenta cual fue el error exactamente
Hola, no estoy completamente seguro pero tendrías que dentro de la estructura declarar el tipo de dato como char, y sería un vector de letras, que quizá ya sabes manejar, por ejemplo. struct Nodo{ char nombre[40]; Nodo *siguiente; }; Después al momento de ingresar los datos, en vez de ingresar números, ingresarías el nombre mediante cin.getline(). Se me ocurre que al momento de querer buscar si hay un dato guardado en la lista lo hagas con la función strcmp() de la biblioteca cstring. Espero te sirva y si tienes alguna duda quizá pueda ayudarte.
muy buenas noches lo felicito muy buenos vídeos yo quiero pedirle un favor que me ayude hacer un trabajo se trata de hacer como un registro de notas con los siguientes datos código nombres carrera ciclo y de hay 4 notas luego poner una opción que me diga si quiero seguir ingresando mas estudiantes con los mismos datos utilizando estructuras y funciones validando números y letras por ultimo en un menú de opciones con 5 opciones ingresar datos buscar datos de los estudiantes eliminar los datos de un estudiante y mostrar todos los datos de todos los estudiantes por favor ayúdeme por favor es una nota muy grande por favor saludos desde ECUADOR-LATACUNGA-POALO
Eres un pro y me enseñas , eres un genio... pero se dice "ha sido" no "a sido" . Dato irrelevante para programación, pero bueno para el castellano. Gracias
A mí no hace que me sangren los ojos pero si no estuviera muerto también iba a comentarle lo mismo jajja... otra cosa que me causó gracia es su pronunciación de "true", la dice igual a la de "through" (/zru/) y no es así sino que suena más como un /chru/
No sería mas practico una lista que no ordene en función del del valor del dato sino en orden de entrada? Siento que es más común y ocuparía menos código. Y la función para buscar seria con un do{ }while((actual->dato != n) || (actual != NULL)).
hola! profdias ayudarme en como puedo usar una plantilla de word en visual studio con C# ya que necesito llenar solo unos datos de esa plantilla con un formato, espero puedas ayudarme!
Este video de esta plataforma me ayudo a retomar temas que no sabía y mejorar un poco en mi programación respecto a este programa aplicarlo en mis actividades CECyT_14_4IV5_Ivan_Emmanuel_S
Un algoritmo más sencillo y lo puedes comprobar por fuera con el condicional if (search( list, #) != NULL) Node * search(Node * list, int value){ while(list != NULL){ // found if( list->value == value ){ return list;} // update list = list->next; } // not found return NULL; }
💻 Apúntate al curso completo de Programación en C++:
Hotmart: hotmart.com/es/marketplace/productos/programacion-en-c-v0ivo/N78682741H
bool search(node *list , int n ){
bool flag = false;
node *now = new node();
now = list;
while(now != NULL){
if(now->dato == n){
flag = true;
}
now = now->next;
}
return flag;
}
no podria ser asi para poder usar la funcion en otros casos?
//Por si ocupan el codigo
#include
#include
using namespace std;
struct Nodo{
int dato;
Nodo *siguiente;
};
Nodo *lista=NULL;
void menu();
void insertarLista( Nodo *&, int);
void mostrarLista(Nodo *);
void buscarLista(Nodo *, int);
int main(){
menu();
getch;
return 0;
}
void insertarLista(Nodo *&lista, int n){
Nodo *nuevo_nodo= new Nodo();
nuevo_nodo->dato=n;
Nodo *aux1=lista;
Nodo*aux2;
while((aux1 != NULL) && (aux1->datosiguiente;
}
if(lista==aux1){
lista =nuevo_nodo;
}
else{
aux2->siguiente =nuevo_nodo;
}
nuevo_nodo->siguiente=aux1;
cout
AH NO, PERO SOS UN CAPO
graciasssss
ERES EL MEJOR MAESTRO DE PROGRAMACIÓN QUE CONZCO GRACIAS INFINITAS POR TU TIEMPO GRACIAS GRACIAS
Sin duda fuiste un gran maestro, espero en Dios estes descanzando en paz 😔♥️
Descansa en paz ,si apruebo el curso te lo dedicare a ti maestro
Tus enseñanzas serán recordadas con mucho cariño descansa en paz... ya estas en un lugar mejor.
Lejos el mejor canal de programación.
"Ya sé qué... !Lo sabes!" jajajaj Con un master and comander como vos, el que no aprenda es por que no quiere. Gracias Campeón.
Era un excelente motivador :(
@@agustinlyon8173 Hola. Lo de "era". ¿Es que le ha pasado algo? Veo que ha dejado de subir vídeos, pero no se la causa. Si lo sabes te agradezco que me lo comentes.
Un saludo.
@@kafkimatematico1456 el falleció
@@kafkimatematico1456 Falleció a causa de un cáncer en la rodilla. Que triste.
@@revanshen Madre mia!!! Un cáncer en la rodilla. Si que es triste, toda l a vida por delante y mira. Buff. Cuanto lo siento.
Gracias y un saludo.
Excelente curso, explicas muy bien tus vídeos me han ayudado bastante. Gracias :D
Gracias a ti por ver Marisol :D Un saludo
es la primera vez que veo uno de los videos y si mi respetos, explicas excelente la verdad
Descansa en paz hermano,gracais por dejar este conocimiento tan valioso.
men grasias por los tutoriales jajajja yo recien me entero que eres de la unt que chevere yo tambien aunque no estudio informatica ni sistemas pero ese será mi proximo paso y grasias de nuevo por que con estos tutoriales me di cuenta que mi carrera es sistemas :D
Prueba sin usar actual usando para recorrer la lista lista=&(*lista) -> siguiente y preguntando en el while por (*lista) -> dato dato==nro)
cout
tienes mucha razón :D Buen algoritmo
Gracias! Sigue asi que estan muy buenos los tutoriales y como explicas
Puede n ser menor que dato ? en algún caso ?
primera vez que llevo listas , pero y cada vez logro comprender mas ,este algoritmo que propones ya casi lo entiendo,,voy en un 70% xdd
el problema de esto es que si (*pl)->dato=nro, se ejecutaria el while y el nodo pl correria una posicion,
while(*pl!=NULL && (*pl)->datosiguiente;
y luego cuando entre al if no encontraria una igualdad en (*pl)->dato==nro
if(*pl!=NULL && (*pl)->dato==nro)
Si no me equivoco lo correcto sería poner el while de la siguiente manera:
while(*pl!=NULL && (*pl)->datosiguiente;
Excelente vídeo !! :3 sin duda eres mi maestro de programación !! :3
Muchas gracias Yun Li :) Un saludo
+Programación ATS Muchas gracias !! saludos !! :3
Explicas mejor que mi maestra de la uni , eres muy bueno
Muchas gracias :) Un saludo
excelente video, gracias por compartir
Muchas gracias por el material, me sirve mucho.
Para que la busqueda sea más eficiente lo ideal sería agregar un break dentro del condicional, ya que en el caso de que actual->dato sea menor a n, el while seguirá ejecutandose hasta llegar al NULL. Con el break; la sentencia terminará en el mismo instante en el que actual->dato==n.
---------------------------------
while (actual!=NULL)
{
if (actual->dato==n)
{
flag = true; *break* ;
}
actual = actual->sgte;
}
tengo una duda, el break no solo haria que salga del if ? ya que se encuentra dentro de ese condicional ,xq saldria del while?....
@@eliasmath2017 el break hace si mal no recuerdo el brake hace que la iteración termine de inmediato
Si actual->dato es menor a n, es necesario llegar a NULL para confirmar que no existe el elemento en la lista
Es mas eficiente dejar el (lista->dato
Descanza en paz loco, sin duda un maestro
INCREIBLE
Tqm Programación ATS
Gracias!!!
Hola! Me encantan tus vídeos, aplicaremos c++ en un proyecto?
Hola, se podría mejorar el algoritmo de busqueda si la linea siguiente a band = true; sea break; para romper el ciclo. En pocos elementos no se nota pero en volumenes mayores puedeser representativo.
Falleciò hace tres años mano
graciass
Muy buen video, tengo una duda como puedo ordenar los datos ingresados, he tratado de hacerlo por el metodo de burbuja pero no me da
no se puedas ayudarme necesito que en lista se guarde una palabra no un caracter como lo hago , cuando lo hago solo me guarda un caracter no la palabra
Si el elemento es de tipo string?
strcmp
hola me puedes ayudar con este ejercicio mplementar el método de búsqueda binaria en una lista simplemente enlazada
Tengo dudas, en sólo como creo un nodo y agrego métodos de eliminar o agregar dato sin implementar un TDA
Cuando yo pongo Nodo *actual = New Nodo() no me agarra, pero le pongo con struct me sale que return 1 con el error (.text+0x7f)
Sabes porque me sale eso?
el ya esta muerto literalmente pero el mensaje de error que proporcionas, "(.text+0x7f)", es un error genérico que no proporciona suficiente información para determinar cuál es el problema específico en tu código. Puede haber varios factores que contribuyan al error, como errores de sintaxis, problemas en la definición de la estructura, problemas con punteros, entre otros.
@@sthifen2237 gracias, ahora no recuerdo que hice pero unos meses despues de esto (y haber utilizado un modelo diferente) pude lograr que funcionara, pero nunca me di cuenta cual fue el error exactamente
👍👍👍
Si en lugar de números fueran nombres lo que tuviera que leer? como pudiera hacer? agradezco la colaboracion
Hola, no estoy completamente seguro pero tendrías que dentro de la estructura declarar el tipo de dato como char, y sería un vector de letras, que quizá ya sabes manejar, por ejemplo.
struct Nodo{
char nombre[40];
Nodo *siguiente;
};
Después al momento de ingresar los datos, en vez de ingresar números, ingresarías el nombre mediante cin.getline(). Se me ocurre que al momento de querer buscar si hay un dato guardado en la lista lo hagas con la función strcmp() de la biblioteca cstring. Espero te sirva y si tienes alguna duda quizá pueda ayudarte.
¿Hola comunidad , por que debo crear otro nodo en la funcion de buscarlista ,creo un nuevo nodo ? , no me queda claro eso.
Es verdad, no necesitas crear uno nuevo porque puedes usar el nodo lista directamente ya que no se va a modificar.
@@learning2895 gracias !
Por que crear un nuevo nodo para buscar un dato ? Si ya los nodos estan insertado en la opcion 1
@DanshX quiere decir que estuvo demas en el ejercicio crear ese nuevo nodo.
muy buenas noches lo felicito muy buenos vídeos
yo quiero pedirle un favor que me ayude hacer un trabajo se trata de hacer como un registro de notas con los siguientes datos código nombres carrera ciclo y de hay 4 notas luego poner una opción que me diga si quiero seguir ingresando mas estudiantes con los mismos datos utilizando estructuras y funciones validando números y letras por ultimo en un menú de opciones con 5 opciones ingresar datos buscar datos de los estudiantes eliminar los datos de un estudiante y mostrar todos los datos de todos los estudiantes
por favor ayúdeme por favor es una nota muy grande por favor
saludos desde ECUADOR-LATACUNGA-POALO
Qepd crack
Eres un pro y me enseñas , eres un genio... pero se dice "ha sido" no "a sido" . Dato irrelevante para programación, pero bueno para el castellano. Gracias
Justamente eso venía a comentar jajaja. Dejando de lado ese error, este sujeto explica muy bien.
Venía a decir lo mismo, un crack programando, pero ese error hace sangre a los ojos jajaja, imagino que no se dió cuenta.
A mí no hace que me sangren los ojos pero si no estuviera muerto también iba a comentarle lo mismo jajja... otra cosa que me causó gracia es su pronunciación de "true", la dice igual a la de "through" (/zru/) y no es así sino que suena más como un /chru/
👍
No sería mas practico una lista que no ordene en función del del valor del dato sino en orden de entrada? Siento que es más común y ocuparía menos código.
Y la función para buscar seria con un do{ }while((actual->dato != n) || (actual != NULL)).
deberías de subir los códigos de los programas
Hay "memory leak" de "Nodo *actual = new Nodo();" y debería ser "Nodo *actual;". Y a continuación "actual = lista;".
¿Alguien de casualidad sabe como ponerle posiciones y que al estar dos valores iguales en diferentes posiciones se muestren?
con variables, y puntero apuntando
hola! profdias ayudarme en como puedo usar una plantilla de word en visual studio con C# ya que necesito llenar solo unos datos de esa plantilla con un formato, espero puedas ayudarme!
sabe be alguien pq no me funciona pq lo tengo copiado igual:
#include
#include
#include
using namespace std;
struct lista {
int contenido;
lista *direccion;
};
void llenar (lista *&puntero , int &dato)
{
lista *nuevo = new lista ();
nuevo->contenido = dato;
lista *uno = puntero;
lista *dos;
while((uno != NULL)&&(uno->contenido < dato))
{
dos = uno;
uno = uno->direccion;
}
if(puntero == uno){puntero = nuevo; }
else{dos->direccion = nuevo; }
nuevo->direccion = uno;
}
void mostrar(lista *&puntero)
{
lista *nuevo = new lista();
nuevo = puntero;
while(nuevo != NULL)
{
coutcontenido contenido == dato){band = true;}
}
nuevo = nuevo->direccion;
if(band == true){cout
nuevo = nuevo->direccion; esto tiene que estar dentro el while para ver uno por uno o hasta que se cumpla NULL
Cecyt 14 Carlos Paredes 4iv5 El video es uy bueno aprendi a buscar un elemento en una lista enlazada
No sabía sobre este tema
Cecyt 14,4IV6, Jessica Álvarez
F
Este video de esta plataforma me ayudo a retomar temas que
no sabía y mejorar un poco en mi programación respecto a este programa
aplicarlo en mis actividades
CECyT_14_4IV5_Ivan_Emmanuel_S
No mientas, ni entendiste nada Jajajaja
Bastante interesante Cecyt 14 Luis Enrique Erro, Areli M, 4IV5
CECYT 14 4IV5 Gabriela M
exente explicación me llamo mucho la atención
CECyT #14.
4iv6.
Brenda Hernández.
Muy buena explicación.
Un algoritmo más sencillo y lo puedes comprobar por fuera con el condicional if (search( list, #) != NULL)
Node * search(Node * list, int value){
while(list != NULL){
// found
if( list->value == value ){
return list;}
// update
list = list->next;
}
// not found
return NULL;
}
Excelente explicación
Ximena M 4IV5 cecyt 14
Hola me da curiosidad saber el porqué ponen su nombre jaja ya me e topado a varios así y pues solo curiosidad
Te ha faltado una "h" en las frases "Si ha sido" y "No ha sido"