
数据结构
文章平均质量分 76
YZYJaaa
这个作者很懒,什么都没留下…
展开
-
括号匹配
括号匹配判断出入的三种括号“()”、“[]”和“{}”是否匹配核心思想:可以用栈来解决。在做括号匹配时,如果以左侧符号为标准,左侧符号需要右侧符号来完成匹配,但是由于诸如括号这类的符号可以做嵌套,所以左侧符号之后既能有左侧符号,也能有右侧符号,处理起来很麻烦。但是以右侧符号为标准就没有这个问题了,每一个右侧符号都需要一个左侧符号来匹配,并且要求该右侧符号之前最近的一个符号必须是相匹配的左侧...原创 2018-07-30 16:55:10 · 472 阅读 · 0 评论 -
合并升序链表,复制复杂链表,找倒数第K个节点
1.合并升序链表思路: 新建指针变量保存两个链表的头指针,原因是防止遍历的时候它指向的数据被改变再新建新链表的两个头指针,一个用来遍历,一个不变用来最后返回 遍历两个链表进行数据比较 ,小的放到新的链表里,链表向后走,比较到其中一个链表遍历结束(链表为空即为结束) 然后把没遍历完的那个链表直接接到新链表之后#include<stri...原创 2018-08-15 11:39:32 · 205 阅读 · 0 评论 -
链表公共结点,搜索二叉树改为双向链表
1.两个链表,求第一个公共结点struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};class Solution {public: ListNode* FindFirstCommonNode( ListNode* pHead1, ...原创 2018-08-15 11:47:02 · 166 阅读 · 0 评论 -
浅析时间复杂度与空间复杂度
首先提出一个问题,如何衡量一个算法的复杂度? 算法的时间复杂度和空间复杂度统称为算法的复杂度。一.时间复杂度 1.概念: 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用"O"来表示数量级,算法的时间复杂度表示为:T(n)=O(f(n...原创 2018-06-05 11:23:44 · 751 阅读 · 0 评论 -
进程,调度算法,task_struct结构体
一.进程的调度算法 先来先服务 (FCFS,first come first served) 在所有调度算法中,最简单的是非抢占式的FCFS算法。 算法原理:进程按照它们请求CPU的顺序使用CPU.就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其他人也想进入内存被执行,就要排队等着,如果在执行过程中出现一些事,他现在不想排队了,下一个排队的就补上。此时...原创 2018-07-30 11:49:38 · 519 阅读 · 0 评论