![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
LM_18391680291
这个作者很懒,什么都没留下…
展开
-
顺序表
顺序表概念:顺序表是用一段连续物理地址依次存储数据结构元素的线性结构,一般用数组来存储,在数组上进行增删查改。顺序表分类:静态顺序表:使用定长数组存储动态顺序表:使用动态开辟的数组存储//静态顺序表#define N 5typedef int SLDataType;typedef struct SeqList{ SLdataType array[N];// 定长数组...原创 2019-04-24 16:34:35 · 312 阅读 · 0 评论 -
括号匹配问题
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。来源:https://leetcode-cn.com/problems/valid-parentheses有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。分析利用栈后进先出的特点...原创 2019-07-21 14:46:58 · 162 阅读 · 0 评论 -
链表带环问题
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。来源:https://leetcode-cn.com/problems/linked-list-cycle分析考虑链表为空,链表为一个结点时的特殊情况链表只有一个节点时,它的next指针会不会指向自身利用快慢...原创 2019-07-05 19:20:04 · 240 阅读 · 0 评论 -
查找单链表相交的第一个结点
编写一个程序,找到两个单链表相交的起始节点。题目来源:https://leetcode-cn.com/problems/intersection-of-two-linked-lists注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。...原创 2019-07-05 18:22:31 · 289 阅读 · 0 评论 -
链表的回文结构
对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。...原创 2019-07-04 19:46:56 · 71 阅读 · 0 评论 -
复杂链表的复制
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。原创 2019-07-13 18:26:44 · 82 阅读 · 0 评论 -
分割链表
以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Partition {public: ListNode* partition(...原创 2019-06-28 20:40:05 · 267 阅读 · 0 评论 -
合并两个有序链表,形成新的有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。题目来源:(LeetCode):https://leetcode-cn.com/problems/merge-two-sorted-lists示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题目分析:任意一...原创 2019-06-27 19:36:26 · 1130 阅读 · 3 评论 -
链表入环的第一个结点
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。来源:https://leetcode-cn.com/problems/linked-list-cycle-ii题目分析:考虑链表为空,且...原创 2019-07-08 15:59:27 · 738 阅读 · 0 评论 -
删除链表中的重复出现的结点,留下只出现一次的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5题目来源:牛客网https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef?tpId题目分析:有序链...原创 2019-06-23 17:36:00 · 331 阅读 · 0 评论 -
返回单链表的中间结点
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。题目来源于领扣:https://leetcode-cn.com/problems/middle-of-the-linked-list/description/示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评...原创 2019-06-22 19:47:06 · 368 阅读 · 0 评论 -
反转一个链表
反转一个单链表题目源于领扣:https://leetcode-cn.com/problems/reverse-linked-list/description/示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题题目分析...原创 2019-06-22 18:01:49 · 349 阅读 · 0 评论 -
单链表的倒数第K个结点
输入一个单链表,输出它的的倒数第K个结点题目来源:牛客网https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId题目分析:因为是单链表,所以只能从前往后,不能从后往前。一个结点为n的链表它的倒数第k个结点,可以发现是正数的n-k+1个结点。特别注意当链表为空的情况当k大于链表的总结点数当k=0时,...原创 2019-06-26 09:58:12 · 115 阅读 · 0 评论 -
删除链表指定val值的所有元素
删除链表中等于给定值 val 的所有节点。输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5分析:当链表为空时,返回NULL当链表不为空时1.当前被删除节点是头节点(包含只有一个节点的情况)2.被删除节点不是头节点删除元素过程如图:注意:当删除的节点就是头结点时...原创 2019-06-20 21:28:05 · 966 阅读 · 0 评论 -
带头双向循环链表
带头双向循环链表双向带头循环链表通常以单独的数据结构出现,虽然结构比单链表复杂,但代码实现比单链表要简单一些。实现双向带头循环链表typedef int LTDataType;typedef struct ListNode{ LTDataType data; struct ListNode* next; struct ListNode* prev;}ListN...原创 2019-06-20 11:53:32 · 212 阅读 · 0 评论 -
顺序表—冒泡排序,二分查找,删除相同元素
顺序表概念:顺序表是用一段连续物理地址依次存储数据结构元素的线性结构,一般用数组来存储,在数组上进行增删查改。顺序表分类:静态顺序表:使用定长数组存储动态顺序表:使用动态开辟的数组存储//静态顺序表#define N 5typedef int SLDataType;typedef struct SeqList{ SLdataType array[N];// 定长数组...原创 2019-05-06 15:19:23 · 524 阅读 · 0 评论 -
单链表
单链表概念:链表是一个物理存储结构非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表不单这一种,还分为带头和不带头,单向和双向,循环和非循环,组合下来一共8种。但常用的就是单链表和带头双向循环链表上图中的例子就是一个单链表无头单向非循环链表:结构简单,一般不会用来单独存储数据。实际中更多的是作为其他数据的子结构。带头双向循环链表:结构最复杂,一般用...原创 2019-05-13 18:51:52 · 124 阅读 · 0 评论 -
栈
栈的概念:栈是一种特殊的线性表,只允许固定一端进行插入或者删除操作,进行数据操插入和删除的一端称为栈顶,另一端称为栈底。栈中的数据遵循后进先出的原则。压栈:栈的插入操作,也叫做进栈/入栈出栈:栈的删除操作,出数据也在栈顶栈的实现一般栈可以由数组和链表实现,但是相对而言数组结构实现栈会更优一点,因为数组在尾部插入删除数据效率更高。静态栈不支持动态增长,大小固定typedef in...原创 2019-07-21 18:46:39 · 85 阅读 · 0 评论