![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
文章平均质量分 91
南宫小仙僧
这个作者很懒,什么都没留下…
展开
-
单链表倒置问题
数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性。但数组也同样存在一些弊病。如数组的大小在定义时要事先规定,不能在程序中进行调整,这样一来,在程序设计中针对不同问题有时需要3 0个大小的数组,有时需要5 0个数组的大小, 难于统一。我们只能够根据可能的最大需求来定义数组,常常会造成一定存储空间的浪费。 我们希望构造动态的数组,随时可以调整数组的大小,以满足不同问题的需要。链原创 2017-05-11 16:19:23 · 1946 阅读 · 0 评论 -
在一个已排序的循环链表中插入节点
这个比较简单,直接上代码了typedef struct ListNode{ int data; ListNode *next;}ListNode;void sortedInsertNode(ListNode *head,ListNode *newNode){ ListNode *cur=head;//把头结点设置为当前节点 //case 1: 该链表为空原创 2017-05-12 14:40:23 · 472 阅读 · 0 评论 -
微软亚洲研究院面试编程题之判断两个链表是否相交
给出两个单向链表的头指针,比如h1,h2。判断这两个链表是否相交。为了简化问题,我们假设两个链表均不带环。问题扩展: 1.如果链表可能有环列?2.如果需要求出两个链表相交的第一个节点列?//链表结构体typedef struct ListNode{ int value; ListNode *next;}ListNode;//方法一:链表无环(判断两个单链表是否存在交点)bool i原创 2017-05-09 11:32:05 · 406 阅读 · 0 评论 -
哈希表算法实现
1、什么是Hash?Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。HASH转载 2017-05-17 21:31:12 · 419 阅读 · 0 评论 -
复杂链表的复制
题目:请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任意结点或者NULL。结点定义如下:struct ComplexListNode{ int m_nValue; ComplexListNode*原创 2017-06-22 10:51:37 · 291 阅读 · 0 评论 -
合并两个排序的链表
程序算法思想很简单,不作过多的介绍,直接上核心代码:typedef struct ListNode{ int m_nValue; ListNode* m_pNext;};//递归解法ListNode* Merge(ListNode* pHead1,ListNode* pHead2){ if(pHead1==NULL) { return pHead2原创 2017-06-12 21:38:43 · 256 阅读 · 0 评论