顺序表与链表(1)

10-20

一、复习

数据:

数据元素:

数据项:

数据结构:

逻辑结构

集合

线性结构

树形结构

图形结构

存储结构

顺序存储:每个存储元素之间地址是连续的。

插入删除效率低

查找修改效率高

链式存储:

插入删除效率高

查找修改效率低

地址之间不连续

索引存储

Hash存储

1、顺序表

(1)相关结构体定义
#define N 50
typedef int data_t;//int可以改成其他类型
typedef struct seqlist
{
	data_t data[N];//可以是任意类型
	int last; //表尾“指针”不是真的指针,而是指向最后一个元素的下标。
}Seqlist;
(2)相关操作

创建、增删改查、打印、清空、删除、判空、判满

2、链表

顺序表在创建时便已经定义好了大小,在添加数据容易空间浪费或者空间不足的情况;

顺序表的插入和删除随着元素基数增加,效率会逐渐降低

(1)链式存储的特点:

元素之间的地址空间不是连续的,需要插入新的元素时,需要重新该元素开辟空间(不会出现资源不足或者空间浪费的情况)

(2)链式分类

有头无头取决于第一个元素是否有效(有效则为无头,无效则为有头)

a.无头链表

b.有头链表(一般情况下适用)

(3)链表相关结构体
typedef int data_t;
typedef struct linklist
{
    data_t data;//节点的数据域(存数据)
    struct linklist *next; //节点的指针域(指向下一个节点的地址)struct linklist可写为别名Linklist
}Linklist;
(4)链表相关操作

a.创建头节点(链表)

b.链表插入

(a)头插法

(b)按位置插入

c.链表删除

(a)按值

(b)按位置

d链表查询

(a)按值

(b)按位置

e.链表修改

(a)按值

(b)按位置

f.链表清空

g.链表销毁(要先清空再销毁)

h.打印表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值