1、線性表是最常用且最簡單的一種資料結構。簡言之,乙個線性表就是n個資料元素的有限序列。
儲存空間是連續變化的
線性表的順序表示和實現:
#include #include #define list_init_size 10
#define listincrement 10
#define elemtype char
//線性表儲存結構
typedef struct sqlist;
//初始化
int initlist(sqlist * l)
l->length = 0; //表長度為0
l->listsize = list_init_size; //表儲存容量為100
return 1;
}//插入
int insertelem(sqlist * l, int i, elemtype elem)
if (l->length >= l->listsize)
printf("重新分配空間成功\n");
l->elem = newelem;
l->listsize += listincrement;
}elemtype * q = &(l->elem[i-1]);
//插入位置本身及其後面的元素後移
for (elemtype * p = &(l->elem[l->length - 1]); p >= q; p--)
*q = elem;//插入元素
l->length++; //表長+1
return 1;
}//刪除
int deleteelem(sqlist * l, int i, elemtype * elem)
elemtype * p = &(l->elem[i-1]); //找到要刪除的元素
*elem = *p; //刪除的元素儲存下來
elemtype * q = l->elem + l->length - 1; //找到表尾位置的元素
for (++p; p <= q; ++p)
--l->length;
return 1;
}int main(int argc, const char * argv)
elemtype elem;
deleteelem(&l, 10, &elem);
printf("刪除的元素是%c\n", elem);
for (int j = 0; j < l.length; j++)
return 0;
}
輸出:
hello, world!
重新分配空間成功
重新分配空間成功
刪除的元素是mvu
tsrq
ponl
kjih
gfed
cbaprogram ended with exit code: 0
線性表 順序表示和實現(順序表)
線性表 順序表 實現 方式 陣列 說明 1.資料元素從下標0開始 2.順序表元素個數初始是為0,有乙個時為1,即 size比元素個數大1 3.也是size比陣列下標大1 4.有上限 maxsize 線性表 順序表 實現 陣列 1.資料元素從下標0開始 2.順序表元素個數初始是為0,有乙個時為1,即 ...
線性表的順序表示和實現
一 前言 線性表的順序表示是指用一組位址連續的儲存單元依次儲存線性表的資料元素。一般來說,線性表的第i個資料元素ai的儲存位置為 loc ai loc a0 i 1 xl 其中loc a0 表示的是第乙個資料元素的儲存位置,通常稱為線性表的起始位置或者基位址。l代表的時每個資料元素需要占用l個儲存單...
線性表的順序表示和實現
線性表的順序表示指的是用一組位址連續的儲存單元依次儲存線性表的資料元素。假設線性表的每個元素需占用l個儲存單元,並能所佔的第乙個單元的儲存位址作為資料元素的儲存位置。則線性表中第i 1個資料元素的儲存位置loc ai 1 和第i個資料元素的儲存位置loc ai 之間滿足下列關係 loc ai 1 l...