数据结构 线性表之单链表

链表中通常都是包含两部分,一个数据域,一个指针域。前者用于存储所需要的各种数据,后者用于存储后继结点的地址。通常有一个头指针指向链表的头结点,然后头结点的指针域指向第一个结点,最后一个结点的指针域为NULL,表示后面没有了。相比于顺序表,链表的每个结点数据所占的内存可以分布在计算机内存的各个角落,需要时动态分配。

逆序创建单链表

void CreateList_L(LinkList &L, int a[], int n)

创建单链表时,首先定义链表这一数据结构,然后再定义单链表变量。其实再定义变量时链表就已经建好了,而CreateList_L函数的本质是对这个链表赋值。即先把想存到单链表里的数据存储到数组里,然后再转存到链表里。要先定义一个指向新建立结点的指针,然后通过循环对这个结点赋值,再将L头指针指向这个新建立的结点。头插法,即把每一个新结点都插入到第一个结点之前。

求链表的长度

int ListLength_L(LinkList L)

定义一个指向结点的指针,先让它指向头结点,然后往后遍历,同时k加一。while循环遍历时限制条件是while(p);确保p指向最后一个结点时也能计数。利用指针遍历链表时指针p不能是p++,而要使p=p->next;!!!

查找元素 返回其地址

LNode *LocateElem_L(LinkList L, int e)

同样是要定义一个指针来遍历链表,while循环的限制条件是while(p&&p->next!=e) 最后返回p指针。如果没有这个元素则p==NULL;

插入节点操作

void  ListInsert_L(LinkList &L, LNode *p, LNod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值