線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。
下面給出關於線性表順序儲存常用操作的**:
#include #define maxsize 20 //儲存空間初始分配量
#define true 1
#define false 0
typedef int elemtype;
typedef struct
sqlist;
void initlist(sqlist *l) //初始化順序表
int listempty(sqlist l) //判斷表是否為空
void clearlist(sqlist *l) //將線性表清空
void getelem(sqlist l,int i,elemtype *e) //將線性表l中第i個元素值返回給e
return false;}
else if(i > l->length || i < 0)
int t;
for(t = l->length-1;t >= i;t--)
l->data[t + 1] = l->data[t];
l->data[i] = e;
l->length++;
}int listdelete(sqlist *l,int i,elemtype *e) //刪除線性表l中第i個元素,並用e返回其值
else if(i > l->length || i < 0)
*e = l->data[i];
int t;
for(t = i;t < l->length;t++)
l->data[i] = l->data[i + 1];
l->length--;
}int listlength(sqlist l) //返回線性表的長度
void print(sqlist l) //列印線性表
{ int i;
for(i = 0;i 線性表線性儲存結構的優缺點:
優點:無須為表示表中元素中間的邏輯關係而增加額外的儲存空間
可以快速的訪問biao表中任意位置的元素
缺點:插入和刪除操作需要移動大量元素
當線性表長度變化較大時,難以確定儲存空間的容量
造成儲存空間的「碎片」
線性表(順序儲存)的相關操作
include include define list init size 100 定義線性表空間的初始儲存大小為 define true 1 define false 0 define ok 1 define error 0 typedef int status typedef int elemt...
線性表順序儲存基本操作
線性表的基本操作 status,自定義的乙個列舉型別,enum status status list init sqlistptr l 初始化線性表 void list clear sqlistptr l 清空線性表 void list destory sqlistptr l 銷毀線性表 bool ...
線性表順序儲存
線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。include stdio.h include malloc.h typedef struct slist,list void init list 線性表初始化 void insert list s,int p 線性表插入 void delet...