Red de conocimiento informático - Computadora portátil - Tres preguntas sobre programación de estructuras de datos~~~

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.