Tres preguntas sobre programación de estructuras de datos~~~
Solo te daré algunas ideas,
1. Quieres decir que los elementos están ordenados en orden ascendente. Primero puedes usar una variable para obtener la primera dirección de tu tabla de secuencia. y luego sigue solicitándolo. Los elementos insertados se comparan en tamaño y se pueden insertar después de encontrar la posición adecuada
(1)
#stdio.hgt; /p>
#includelt; stdlib .hgt;
#define LIST_INIT_SIZE 100//Tamaño inicial de la tabla
estructura typedef
{
int *elem;
int length;
}SqList; //Estructura de la lista de secuencias
int main()
{
int i, j, k;
SqList hoja; //Asignación directa aquí para simplificar
sheet.elem = (int*)malloc(LIST_INIT_SIZE *sizeof(int));
p>
sheet.elem[0] = 1; //Asignación
sheet.elem[1] = 2; >
sheet.elem[2] = 4;
sheet.length = 3
//Si desea insertar un elemento de 3 ahora
i = 3;
for(j =0; jlt; hoja.longitud; j)
if(hoja.elem[j]gt; =i)
break; //Salir cuando se encuentre
for(k=sheet.length-1;kgt;=j;--k) //Mover el elemento una posición hacia atrás
{
hoja.elem[ k 1] = hoja.elem[k];
}
hoja.elem[j] = i; /Insertar elemento
for(k= 0; klt; 4; k)
printf("d ", hoja.elem[k]); return 0;
}
(2) Este es un resumen, debe modificarlo usted mismo
#stdio.hgt;
#includelt; stdlib.hgt;
typedef struct LNode //Estructura de enlace único
{
int elem;
struct LNode *next;
}LinkList
int main()
{
int i;
LinkList *link, *link2, *link3, *temp, * temp2, *temp3 //Para simplificar, esto también se asigna directamente
link = (LinkList*)malloc(sizeof(LinkList; ));
link2 = (LinkList*)malloc(sizeof (LinkList));
link3 = (LinkList*)malloc(sizeof(LinkList));
link-gt; elem = 1; //Enlazar juntos
l
tinta-gt; siguiente = enlace2;
enlace2-gt; elem = 2;
enlace2-gt; siguiente = enlace3
elemento = 3;
enlace3-gt; siguiente = NULL;
//Inversión
temp = enlace
temp2 = enlace2;
temp3 = link3;
temp-gt; next = NULL
//Esta parte se puede colocar en el bucle
while (1)
{
temp2-gt; next = temp; //Cambiar la dirección de cada nodo
temp = temp2;
if(temp3==NULL) break; // Si temp3 aquí está vacío, debes salir, piénsalo tú mismo
temp2 = temp3;
temp3 = temp3. -gt ; siguiente;
}
for(i=0; ilt; 3; i)
{
printf(" d " , temp2-gt;elem);
temp2 = temp2-gt;siguiente;
}
devuelve 0;
}
La tercera pregunta es en realidad similar. No puedo escribir más sobre ella debido a limitaciones de tiempo. Lea más sobre el libro de estructura de datos para obtener más detalles.