Programación de una tabla lineal
//Después de pasar una noche y este mediodía, finalmente lo logré. Puede ejecutarse correctamente en VC 6.0 y básicamente cumple con sus requisitos. Código: #include
const int maxsize=100; //La longitud máxima posible de la tabla lineal, se supone que es 100;
typedef struct{
datatype data[maxsize+1]; // Definir los datos de la tabla lineal
int n; tabla lineal
}sqlist;//Crear tabla
sqlist* creat()
{
tipo de datos x;
int i =1;
lista sq *L;
L=nueva lista sq;
while(cin>>x,x!=0)
{
L->datos[i]=x;
i++;
}
L ->n=i -1;
L->data[0]=L->n;
return L;
}//Insertar función
int insert(sqlist *L,datatype x,int i) { //Inserta x en la tabla de secuencia L para obtener la i-ésima posición
int j;
if(L ->n==maxsize) { cout<<"¡La tabla está llena, no se puede insertar! (desbordamiento)\n"; return }
if(i<1 | | i>L-> n+1) {cout<<"¡Posición de inserción ilegal!\n"; return }
L->n++;
for(j= L->n;j >i;j--)
L->data[j]=L->data[j-1] //Mover el nodo hacia atrás
L->datos[ i]=x;
return 1;
}//Eliminar función
int deletex(sqlist *L,tipo de datos x) {
if(L->n==0) { cout<<"¡La tabla está vacía y no se puede eliminar! (underflow)\n"; for(int j=1;j <=L->n;j++)
if(L->data[j]==x) //Encuentra el valor coincidente x
for(;j<=L- >n;j++)
L->data[j]=L->data[j+1] //Mover el nodo hacia adelante
L->n--;
return 1;
}
//Mostrar tabla de secuencia
void disp(sqlist * L)
{
cout<<"La longitud de la tabla de secuencia es "<
for(int i=1 ;i<=L->n;i++)
cout<<"Número de serie: "<
;L->datos[i]< } void main() { sqlist *L= NULL; tipo de datos x; int ch,i; XX: while(1) { cout<<" Menú principal\n " <<" 0. Salir\n " <<" 1. Crear tabla de secuencia\n " <<" 2. Insertar datos\n " <<" 3. Eliminar datos\n " <<" 4. Mostrar tabla de secuencia\n "; p> cin>>ch; cambiar(ch) { caso 0: eliminar(L) ; //Salir del programa y cancelar la lista de secuencias return; break; caso 1: cout<<" Ingrese los datos de la tabla de secuencia (¡ingrese 0 para salir!)"< L=creat(); cout<<"¡La tabla de secuencia ha sido creada! \n"; p> break; caso 2: cout<<"Por favor, introduzca el valor que desea insertar\n"; cin>>x ; cout<<"Posición de inserción:\n"; cin>>i; if( insertar(L ,x,i)= =1 ) cout<<"¡Inserción exitosa!"< else cout<<"¡Inserción fallida!"< break; caso 3: cout<<"Ingrese el valor que desea eliminar\n"; cin>>x; if(deletex(L ,x)==1) cout<<"Datos eliminados exitosamente"< else cout<<"Esta tabla de secuencia no tiene datos"<< x< ruptura; caso 4: disp(L); ruptura; predeterminado: cout<<"¡Entrada ilegal! ¡Ingrese las opciones 0~4!"< ir a XX; p> } p> } //Si tiene alguna pregunta, ¡no dude en preguntar! .^_^.