![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
链表专题
介绍链表的各种解法
qqcoming
Coding make me happy
展开
-
王道考研数据结构链表专题
王道后面的链表的代码实现:link.h#pragma oncetypedef int ElemType;typedef char Element;typedef struct Node { Element data; struct Node* next;}Node,* Link;//定义一个单链表结点typedef struct LNOde{ ElemType data; struct LNOde* next;}LNode, * LinkList;//定义一个双链表结点t原创 2020-11-15 15:42:43 · 348 阅读 · 0 评论 -
双链表以O(n)时间的复杂度输出两个和为指定值的节点
一个由整数元素构成的递增有序线性表存放在一个双向链表中,设计一个时间复杂度为O(n)的算法,在链表中获得两个和为X的节点的值,并以X=a+b的形式输出;若不存在,则给出提示信息。算法思路: 我们一直双链表是递增有序,可以很快联想到“二分法”,只需要找到第一个节点元素和最后一个节点元素即可,两者相加和给出的X比较,如果大于目标值,则最大元素前移,小于目标值则最小元素后移,等于目标值直接输出。需要注意的是这种结果可能有多中种,故当等于目标值时输出后最低元素应该后移,最高元素应该前移。具体实现代码如下原创 2020-10-14 17:46:39 · 393 阅读 · 0 评论 -
单链表删除绝对值相等的节点
题目要求:给定一个单链表,所有的数都不超过n,设计一个高效的算法,删除绝对值相同的元素,只保留第一个出现的节点。算法思想:已知每个数都不超过n,所以可以考虑用空间换时间,申请一个n+1大小的数组,全部赋值为0,表示未使用过,用一个工作指针遍历单链表,并检查q[|data|]的值,如果为零则保留并令q[|data|]=1,如果q[|data|]=1则删除。具体实现代码如下:void delCommonValue(LinkList& L, int n) { LNOde* p = L, * r;原创 2020-10-09 19:13:43 · 1362 阅读 · 1 评论 -
分解单链表为两个原序奇偶单链表
题目要求:将一个带头结点的单链表A分解为两个带头结点的单链表A和B,使得A原序号奇,B原序号偶LinkList resolve(LinkList &A) { LinkList B; int count = 0; B = (LinkList)malloc(sizeof(LNOde)); //创建B表表头 B->next = NULL; //初始化B表 LNode* ra = A, *rb = B; //ra和rb分别指向A和B的尾指针 LNOde* p = A->next原创 2020-10-09 18:53:36 · 1035 阅读 · 0 评论 -
单链表的基本功能C实现(各个功能:初始化,插入,删除,遍历,查询等)
C实现单链表的基本操作,可以利用工程更方便的书写代码,把方法的声明和实现测试分别放在不同的文件里,提高写代码的效率,附上代码:方法的声明:link.hlink.h //link.h文件,主要用于声明数据类型,结构体类型,以及方法的定义等#pragma oncetypedef int ElemType;//定义数据的类型,方便更改typedef struct LNOde//定义结点{ ElemType data; struct LNOde* next;}LNode, * LinkList;原创 2020-08-23 18:15:08 · 787 阅读 · 0 评论 -
删除单向链表中间的某个结点,假定你只能访问该结点
/*实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。示例:输入单向链表a->b->c->d->e中的节点c结果:不返回任何数据,但该链表变为a->b->d->e给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true*/对于给定的一个链表,我们只知道给定的一个节点p,而不知道其它的节点,那么我们可...原创 2020-04-13 09:47:24 · 400 阅读 · 0 评论 -
删除链表的倒数第k个元素,双指针轻松解决
删除链表的倒数第k个元素利用双指针一次遍历package Mystudy.Liner;/* * 删除链表中倒数第k个节点 *//** * @author coming */public class DeleteKNode { public static void main(String[] args) { int[] arr = {1,3,4,5,6,7,8}; N...原创 2020-04-10 22:57:18 · 378 阅读 · 0 评论