数据结构与算法(青岛大学-王卓老师)——学习笔记(第3周)

文章目录线性表的链式存储结构p22 线性表的链式存储结构:线性表的链式存储结构双链表,两个指针域。一个指针域存储前驱元素地址,一个指针存取后继元素地址。链表第一个元素为首元节点,在前面添加一个节点,它叫头节点。头指针存放的时头节点的地址。是否有头结点的单链表两种不表示方式:有头结点时,头指针存储的是头节点的地址。是否有头结点的两种不同表示方式的空表:注意:^等价于NU...
摘要由CSDN通过智能技术生成


p22 线性表的链式存储结构:

线性表的链式存储结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
双链表,两个指针域。一个指针域存储前驱元素地址,一个指针存取后继元素地址。在这里插入图片描述
链表第一个元素为首元节点,在前面添加一个节点,它叫头节点。头指针存放的时头节点的地址。
是否有头结点的单链表两种不表示方式:
在这里插入图片描述
有头结点时,头指针存储的是头节点的地址。
是否有头结点的两种不同表示方式的空表:
在这里插入图片描述
注意:^等价于NULL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查找线性表的顺序存储结构中的元素的时间复杂度为O(1)。

p23 线性表的链式存储结构:
知识回忆:
在这里插入图片描述
在这里插入图片描述
单链表的定义与表示:
在这里插入图片描述
注意:结构体中next的类型为strct Lnode指针类型,与定义的结构体类型struct Lnode 加上*后一致。表明指针指向struct Lnode类型的结构体。
在这里插入图片描述
typedef 为Lnode类型,使用时有两种不同的方式:

Lnode a; // 定义为普通类型
a.data = 2;
a.next = 0x12213;

Lnode* p // 定义为指针类型
p->data = 2;
p->next = 0x12213;

typedef 为*LinkList类型,表明它为指针类型。定义时:

LinkList  L;  // 相当于Lnode* p
L->data = xx;
l->next = xx;

在这里插入图片描述

**注意:**定义链表的头指针一般为:LinkList L ;定义节点指针为:LNode *p 而不用LinList P
在这里插入图片描述
p23 线性表的链式存储结构的表示:
在这里插入图片描述

#include<stdio.h>
#include <stdlib.h>

typedef int ElementType;
typedef int status;

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define MaxSize 100

typedef struct Lnode{
   
	ElementType data;
	struct Londe* next
}Lnode,*LinkList
  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值