数据结构_链表(一)_最基础的基础:初始化、单链表插入删除、遍历

链表的基础(一)

最基础的基础:初始化、单链表插入删除、遍历

形式:

typedef struct Node{
    ElemType data;//ElemType可以是int/char/double等等等
    struct Node *next;
}Node,*LinkList;

表示一个单链表时,只需声明一个头指针 L,指向单链表的第一个结点

LNode * L;        //声明一个指向单链表第一个结点的指针
LinkList L;        //声明一个指向单链表第一个结点的指针

在这里插入图片描述

不带结点的单链表:

typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;
 
//初始化一个空的单链表
bool InitList(LinkList &L){    &:代表L的引用,若无&,就表示L的复制品,L并未改变
    L = NULL;        //空表,暂时没有任何结点,防止脏数据
    return true;
}
 
void test(){
    LinkList L;        //声明一个指向单链表的指针,并没有创建结点
    InitList(L);        //初始化一个空表
}

带结点的单链表:

typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;
 
//初始化一个单链表(带头结点)
bool InitList(LinkList &L){
	//分配一个头结点,不存储数据
    L = (LNode *)malloc(sizeof(LNode));       
    if(L = NULL)       //内存不足,分配失败
        return false;
    L->next = NULL;    //头结点之后暂时还没有节点
    return true;
}
 
void test(){
    LinkList L;
    InitList(L);
}

读取:

Node p;
while(!p)
{
    p=p->next;
}

单链表插入

s->next = p->next;
p->next = s;

单链表删除

q = p->next;
p->next = q->next;

//能不能直接写成p->next = p->next->next;?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值