C语言-链表
2019-03-17 本文已影响0人
大鱼鱼
线性表
- 线性表定义:由n个(n>=0)个数据特性相同的元素构成的有限序列称为线性表。
- 线性表特点:每个节点有一个直接前驱节点,有一个后驱节点;第一个节点没有前驱,最后一个节点没有后驱。
- 线性表的顺序存储表示
线性表的顺序表示指的是用一组地址连续的存储单元依次存放线性表的数据元素,这种表示也称为线性表的顺序存储结构或顺序映像。特点是:逻辑上相邻的数据元素,其物理次序也是相邻的。
typedef double dataType;//给现有类型重命名
struct SeqList{
int dataArray[100];//存放顺序表的长度
int nlength;//记录当前顺序表的长度
};
如果我定义了一个double类型,可以将intdataArray[100]重命名为dataType dataArray[100];就将本来的int型改为了double型。
初始化顺序表
- void initList(SeqList
- myList)
{//把数据元素清空
for (int i=0;i<LENGTH;i++){
myList->dataArray[i]=0;}
//把长度置0
mylist.nLength=0;
}
- 求长度
int listLength(SeqList myList){
return myList.nLength;} - 插入数据项
void insertNode(SeqList * myList,int index,dataType data)
{
if(index<0||index>myList->nLength){
//输入不合法
index=myList->nLength;
}
for(int i=myList->nLength-1;i>=index;i--)
myList->dataArray[i+1]=myList->dataArray[i];}
myList->dataArray[index]=data;
myList->nLength++;
} - 获取某位置的数据项
dataType getNodeWithIndex(SeqList myList,int index);