C语言-链表

线性表

  • 线性表定义:由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);

链表:逻辑上是线性表,但存储方式不是有序的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容