C/Visual C - Un Lista enlazada simple que valido si tiene dos nodos o caso contrario falso

 
Vista:
Imágen de perfil de Gaston
Val: 13
Ha aumentado su posición en 4 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Un Lista enlazada simple que valido si tiene dos nodos o caso contrario falso

Publicado por Gaston (5 intervenciones) el 17/10/2020 21:09:09
Hola Gente,

El que pueda darme una mano con ejercicio: lista simplemente encadenada. Porque me pide hacer una funcion de bool tienedos(struct lista *com)

Mil gracias !!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*****************************************************************************
ejercicio:	lista simplemente encadenada.
           Codificar una función que reciba una lista simplemente encadenada y
           devuelva verdadero si tiene por lo menos dos nodos y falso en caso
           contrario. Su declaración será:  bool tienedos(struct lista *com)
******************************************************************************/
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
//---------------------------------------------------
 
struct lista
{
  int num;
  struct lista *sig;
  struct lista *nuevo;
 
 
};
 
void leer_numero(char cade[30], int &a)
{
 
  printf("\n %s:",cade);
  scanf("%d",&a);
  fflush(stdin);
 
}
 
 
void armar_lista(struct lista *&com)
{
   //declaro un puntero a struct lista
   struct lista *p;
   struct lista *ant;
   struct lista *sig;
 
   int n;
 
   printf("\n ingrese el primer numero de la lista: ");
   scanf("%d",&n);
   fflush(stdin);
 
   //si n==0 com apunta a NULL. Ojo !! com debe estar apuntado a NULL
   if(n==0)
     com=NULL;
   else
   {
     //creo un nodo para com: "pido un nodo para com por unica vez, esto se hace aparte fuera del ciclo para no perderlo"
     com= new struct lista;
     com->num=n;      //com apunta num que es n: es un valor numerico que yo ingreso.
     com->sig=NULL;  //com apunta sig que es NULL !!!
     ant=com;       //ahora com apunta a ant
 
     printf("\n ingrese otro numero de la lista: (0) para terminar ");
     scanf("%d",&n);
     fflush(stdin);
 
     while(n!=0)
     {
 
        p=new struct lista;   //creo el nodo apuntado por p: "pido un nodo para p"
        p->num=n;             //p apunta num que es n: es un valor numerico que yo ingreso.
        p->sig=NULL;      //p apunta sig que es NULL !!!!
        ant->sig=p;        //ant apunta a sig que es p (aca hago el enlace)
        ant=p;              //ahora p apunta a ant
 
        printf("\n ingrese otro numero de la lista: (0) para terminar ");
        scanf("%d",&n);
        fflush(stdin);
     }
 
   }
 
}
 
 
void mostrar_lista(struct lista *com)
{
  struct lista *p;
  p=com;
 
  while(p!=NULL)
  {
    printf("\n%d",p->num);
    p=p->sig;
  }
 
}
 
bool tienedos(struct lista *com)
{
   //declaro un puntero a struct lista
   struct lista *p;
   struct lista *ant;
   struct lista *sig;
 
 
 
}
 
void pausar()
{
   printf("\n");
   system("pause");
 
}
 
//------------------------------------------------
 
int main()
{
    struct lista *comienzo;
    int num;
 
 
    printf("__________________________________ \n");
    printf("\n");
 
    armar_lista(comienzo);
    mostrar_lista(comienzo);
 
 
    pausar();
 
    printf("\n");
    printf("------- Terminar ------------------");
 
    return 0;
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 350
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Un Lista enlazada simple que valido si tiene dos nodos o caso contrario falso

Publicado por Rodrigo (119 intervenciones) el 17/10/2020 23:10:17
Supongo que tienes que comprobar que el primer nodo no es null, apunta a un segundo nodo, distinto al primero y distinto a null.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gaston
Val: 13
Ha aumentado su posición en 4 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Un Lista enlazada simple que valido si tiene dos nodos o caso contrario falso

Publicado por Gaston (5 intervenciones) el 17/10/2020 23:15:38
Gracias !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar