Notas de estudio de estructura de datos 03-tabla lineal de estructura de datos

Definición de tabla lineal de tipo de datos abstracto

ADT List
{
    
    
   数据对象
   数据关系
   基本操作
 			IniList(&L)           //构建空表L
 			ListLength(&L)         //求表L的长度
 			GetElem(L,i,&e)        //去元素ai 由e返回ai
 			PriorElem(L,ce,&pre_e)  //求ce的前驱,由pre_e返回
 			InsertElem(&L,i,e)     //在元素ai之气插入新元素e
 			DeleteElem(&L,i)     //删除第i个元素
 			EmptyList(L)      //判断L是否为空表
}ADT List

Elimine el elemento de datos i-ésimo en la tabla L como

L = (a1,a2,...,ai-1.ai..,an)
若删除 表中i的元素
记作 DeleteElem(&L,i)
若删除 表中x的元素
记作 DeleteElem(&L,x)
//
若ai = x 优先删除ai

Insertar nuevo elemento e antes del elemento ai

InsertElem(&L,i,e)
 L= (ai,a2,....,ai-1,e,ai,...)

Buscar - Determine el valor del elemento (o el elemento cuyo valor del elemento de datos es e).
Dado L = (a1, a2,…, ai,… an),
si el elemento e contiene un ai = e, la búsqueda es exitosa, de lo contrario la búsqueda falla


5. Ordenar: reorganice
la posición de cada elemento en la lista según el orden creciente (o decreciente) del valor del elemento o del valor de un elemento de datos. Por
ejemplo: antes de ordenar L = (90,60 ...)
después de ordenar : L = (10, 20, 30, 60)


6. Combine la tabla La y la tabla Lb en la tabla Lc
en la secuencia de la tabla configurada:
La = (2,14,20,45,80)
Lb = (8,10,19,20,22,85,90)
Tabla combinada
Lc = (2, 8, 10, 14, 19, 20)


7. Copie la tabla La en la tabla Lb
La = (2,14,20,45,80)
Lb = (2,14,20,45,80)


La representación secuencial de la tabla lineal (estructura de almacenamiento secuencial)
2.2.1 Distribución secuencial ----
almacena los elementos de datos en la tabla lineal en un grupo de unidades de almacenamiento con direcciones consecutivas en la memoria de la computadora. Este método de distribución se llama distribución secuencial , O imagen secuencial . La estructura de almacenamiento o vector resultante (matriz unidimensional)
l Por ejemplo,
tabla lineal a = (30,40,10,55,24,80,66)
definición de matriz unidimensional estática int a [11];
a [0 ] 30 a [1] 40 a [2] 55

La forma general de la estructura de almacenamiento de secuencia:
número de secuencia estado de almacenamiento dirección de almacenamiento
1 a1 b
2 a2 b + q
i ai b + (i-1) * p

n an b + (n-1) * p
maleng b + (maxleng- 1) * p
b es la dirección del primer elemento de dirección / dirección base ai
p -------------- El número de unidades de almacenamiento ocupadas por 1 elemento de datos
maxleng --------- ---- Longitud máxima, una constante


La definición de estructura de secuencia de tabla lineal en lenguaje C

  #define maxleng 100
 {
    
    
     ElemType la[maxleng +  1];            /  /  下标 0 1 maxleng
     int length;   //当前长度
     int last;      //an的位置
 }

La definición de la estructura secuencial de la tabla lineal en el lenguaje C (asignación estática)
Ejemplo 2: El espacio ocupado por los elementos y la longitud de la tabla se fusionan en un tipo de estructura del lenguaje C

#define maxleng 100
 typedef struct 
 {
    
    
  Elemtype elem[maxleng];//小标 0,1,... ,maxleng-1
  int length;
 }SqList;
 SqList La;

Entre ellos, la definición de typedef-alias, el nombre del tipo de estructura SqList
La ---- el nombre de la variable del tipo de estructura
La.length ----- la longitud de la tabla
La.elem [0] ------ a1
La.eleml [La , longitud-1] ---- una

Estructura de secuencia lineal de tabla definida en el lenguaje C (asignada dinámicamente)
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct
{ Lb - }

Supongo que te gusta

Origin blog.csdn.net/m0_46179894/article/details/109214635
Recomendado
Clasificación