随笔分类 -  数据结构

摘要:基本思路 1. 从元首节点之后每次取一个节点,并将节点接到元首节点前面 代码实现 c++ / Definition for singly linked list. struct ListNode { int val; ListNode next; ListNode(int x) : val(x), 阅读全文
posted @ 2019-03-22 11:48 Phoenix_Xie 阅读(169) 评论(0) 推荐(0)
摘要:基本思路 1. 定义两个指示指针a b 2. 让a先行移动n+1个位置 3. 若a指向了NULL的位置,则删除的是头节点(由于走过了n+1个节点刚好指在尾部的NULL上) 4. 否则让b与a一起移动直至a next,即a的下一个节点为NULL,则此时b的下一个节点为要删除的节点 5. 删除下一个节点 阅读全文
posted @ 2019-03-22 11:32 Phoenix_Xie 阅读(106) 评论(0) 推荐(0)
摘要:基本思路 1. 先计算出两个链表的长度 O(n) 2. 将长的一个链表的指示指针移动到和短链表相同长度 O(n) 3. 两个链表指示指针同时向前移动,直到二者相同或者NULL 代码实现 阅读全文
posted @ 2019-03-22 11:08 Phoenix_Xie 阅读(153) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/UVA-673 这道题并不难解, 用一个栈保存,只要遇到 '(' 和 '[' 入栈,然后遇到 ']' ')' 匹配便出栈,若最后栈不空则未空 但这题有个很严重的问题,需要判断空行,一开始笔者用了scanf("%s", s) 一直在wa, 阅读全文
posted @ 2018-08-11 16:28 Phoenix_Xie 阅读(123) 评论(0) 推荐(0)
摘要:位运算 & 位逻辑与 | 位逻辑或 ^ 位逻辑异或 - 位逻辑反 >> 右移 << 左移 通过对数据本身的01编码进行处理,速度稍微快于普通运算符 如,10 / 2 ==》 10 >> 2 函数清零 memset(s, 0, sizeof(s)) s 为要处理的内容, 然后 0是处于的状态,就是全部 阅读全文
posted @ 2018-03-26 15:01 Phoenix_Xie 阅读(95) 评论(0) 推荐(0)
摘要:1. 栈,使用后进后出(last-in, first-out, LIFO)的策略 2.队列,使用先进后出(first-in, first-out, FIFO)策略 以下笔者用c语言简单实现了一下 1. 栈: 栈的操作有 2. 队列:队列的操作有: 阅读全文
posted @ 2018-01-23 10:41 Phoenix_Xie 阅读(566) 评论(0) 推荐(0)