優點:1.無需為表示表中元素之間的邏輯關係而增加額外的儲存空間。
2.可以快速的訪問表中任意位置的元素
缺點:1.插入和刪除操作需要移動大量的元素
2.當線性表長度變化較大時,難以確定儲存空間的大小
3.造成儲存空間的「碎片」
linelist.h檔案
#ifndef _line_list_h
#define _line_list_h
#define maxsize 20
typedef int elemtype;
typedef int bool;
#define true 1
#define false 0
typedef struct
sqlist;
//獲取元素
bool getelem(sqlist* pli,int index, elemtype* pvalue);
//插入資料
bool insertelem(sqlist* pli,int index, elemtype value);
//刪除乙個元素 pet:out, 刪除的元素
bool deleteelem(sqlist *plist,int index,elemtype *pet);
#endif
linelist.cpp檔案
/*
線性鍊錶結構
*///#include "stdafx.h"
#include "linelist.h"
//獲取元素
bool getelem(sqlist* pli,int index, elemtype* pvalue)
*pvalue = pli->data[index-1];
return true;
}//插入資料
bool insertelem(sqlist* pli,int index, elemtype value)
//是否已滿
if(pli->length >= maxsize)
//插入位置之後的元素全部後移一位
//插入位置不在表尾
if(index <= pli->length) }
pli->data[index-1] = value;
pli->length++;
return true;
}//刪除乙個元素 pet:out, 刪除的元素
bool deleteelem(sqlist *plist,int index,elemtype *pet)
*pet = plist->data[index-1];
//是否為最後乙個元素
if(index != plist->length) }
//長度減一
plist->length--;
return true;
}
線性表線性(順序)儲存結構
實現順序表的曾刪查操作 元素結構體 define maxsize 100 線性表的最大長度 typedef int elemtype elemtype為線性表元素的型別 typedef struct sequenlist 插入操作 bool insertinseqlist sequenlist l,...
線性表的順序儲存 線性表的順序儲存結構
1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...
線性表 順序儲存結構
s1線性表的基本概念 1 有而且只有乙個 第一元素 2 有而且只有乙個 最後元素 3 除第一元素之外,其他元素都有唯一的直接前驅。4 除最後元素之外,其他元素都有唯一的直接後繼。s2計算公式 若第乙個元素的位址是a,每個元素占用的儲存空間為d,則陣列的第i個元素的位址可以用如下公式計算 loc i ...