Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
segundo avance de la lista enlazada
#include <stdio.h> #include <stdlib.h> // Definición de estructura que almacenará los nodos typedef struct { int dato; struct structNodo *siguiente; }nodo; //typedef struct structNodo nodo; // Prototipos de las funciones. //nodo *crearLista(nodo *lista); nodo *insertarNodoInicio(int valor, nodo *lista); nodo *insertarNodoFinal(int valor, nodo *lista); void instructions(void); void output(nodo *lista); int main(void) { nodo *lista = NULL; unsigned short choice; int item; //lista = crearLista(lista); instructions(); while(1) { scanf("%hu", &choice); if ( choice == 3) break; switch( choice ) { case 1: printf("Ingresa el numero: "); scanf("\n%d", &item); lista = insertarNodoInicio(item, lista); output(lista); break; case 2: printf("Ingresa el numero: "); scanf("%d\n", &item); lista = insertarNodoFinal(item, lista); output(lista); break; default: printf("Operacion invalida\n"); instructions(); } } return 0; } // Implementación de las funciones. nodo *crearLista(nodo *lista) { return lista = NULL; } nodo *insertarNodoInicio(int valor, nodo *lista) { nodo *nodoNuevo; nodoNuevo = malloc(sizeof(nodo)); if ( nodoNuevo != NULL) { nodoNuevo -> dato = valor; nodoNuevo -> siguiente = lista; lista = nodoNuevo; } return lista; } nodo *insertarNodoFinal(int valor, nodo *lista) { nodo *nodoNuevo, *nodoAux; nodoNuevo = malloc(sizeof(nodo)); if ( nodoNuevo != NULL) { nodoNuevo -> dato = valor; nodoNuevo -> siguiente = NULL; // Antes de ingresar este nuevo nodo a la lista, se comprueba si la lista esta vacía. if ( lista == NULL ) lista = nodoNuevo; else { // nodoAux apunta al inicio de la lista nodoAux = lista; // Iteración para que este nodo salte de nodo en nodo hasta que se llegue al último nodo while ( (nodoAux -> siguiente) != NULL ) { nodoAux = nodoAux -> siguiente; } nodoAux -> siguiente = nodoNuevo; } } return lista; } void output(nodo *lista) { nodo *nodoAux; nodoAux = lista; printf("\n"); //printf("INICIO -> "); while ( nodoAux != NULL ) { printf("%d -> ", nodoAux -> dato); nodoAux = nodoAux -> siguiente; } printf("NULL\n"); } void instructions(void) { printf(".........................................\n"); printf(" INGRESA LA OPCION\n"); printf(".........................................\n"); printf(" 1: para agregar un elemento al principio de la lista\n"); printf(" 2: para agregar un elemento al final de la lista\n"); //printf(" 3: para imprimir la lista"); printf(" 3: para finalizar"); }
run
|
edit
|
history
|
help
0
tst1.c
Dangling
kushagra siingh_19BCE0665
palindrome.c
Factorial_LOOP
numeroleidodeordeninverso
Volume of a square pyramid With functions
2.2 Comparision with Matrix Addition Execution Time
Cuenta codigos
Palindromo