《数据结构教程(第四版)》读书笔记-第二章 线性表

线性表:具有相同特性的数据元素的一个有限序列。线性表的长度为n。一对一结构。

线性表的顺序存储结构——顺序表
物理结构上连续。

线性表的链式存储结构——链表
用一组任意的存储单元存放数据元素。可以连续可以不连续。除了存储数据域Data外,还要存储指针域next和prior。每个链表都有一个头结点,数据域为空,通过头结点的指针唯一表示该链表。

单链表
基本运算:建立(头插入/尾插入),初始化、销毁、判断为空、插入、删除、查找。
头插入法:时间复杂度O(n),缺点是表顺序与输入顺序相反。
这里写图片描述

void createrlistF(Linklist *&L,ElemType a[],int n)
{ Linklist *s;
 int i;
 L=(linklist*)malloc(sizeof(Linklist));//创建头结点
 L->next=NULL; //初始为空
 for(i=1;i<n,i++)
 {
  s=(linklist*)malloc(sizeof(Linklist));
  s->data=a[i]); //创建数据节点*s
  s->next= l-next; //将*s插入到原开始结点之前,头结点之后
  l->next= s;
 }
}

尾插入法:时间复杂度O(n),正序
这里写图片描述

void createrlistF(Linklist *&L,ElemType a[],int n)
{ Linklist *s;
 int i;
 L=(linklist*)malloc(sizeof(Linklist));//创建头结点
 r=L; //r始终指向尾结点,初始时相当于指向头结点
 for(i=1;i<n,i++)
 {
  s=(linklist*)malloc(sizeof(Linklist));
  s->data=a[i]); //创建数据节点*s
  r->next= s; //将*s插入r之后
  r= s;
 }
  r->next= NULL;//清空尾结点next
}

双链表
循环单链表、循环双链表
约瑟夫环问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值