1.赋值当前结点到当前节点得后面和当前结点之间 2.赋值random指针 3.分离两个链表 找到新的头结点,逆置(此时要记录新的头结点和调整好的链表的尾) 从头比较两个链表(A,B)的元素,若A->val<B->val,A继续向前移动,A->val>B->val,B继续向前移动,否则打印想等元素 执
ipc对象持久性 进程持久性:具有这种持久性的对象在持有它的最后一个进程关闭了该对象为止 内核持久性:这种IPC对象一直存在直到内核重新自举或显示删除该对象为止 文件系统持久性:具有这种持久性的对象只有在它被显式删除时才会消失。即使内核重新自举该对象还保持(POSIX消息队列,信号量,共享内存如果是
判断一棵树是不是搜索二叉树 判断一棵树是不是平衡二叉树 求数中任意两个结点的最远距离 一个公司的上下节关系是一棵多叉树,这个公司要举办晚会,你作为组织者已经摸清了大家的心理:一个员工的直 接上级如果到场,这个员工肯定不会来。每个员工都有一个活跃度的值,决定谁来你会给这个员工发邀请函
数据结构设计
从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。
当内核执行C程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地址—这是由连接编辑器设置的,而连接编辑器由C编译器调用。启动例程从内核取得命令行参数和环境变量值,然后按上述方式调用main函数做好安排。 5种正常终止 在main函数内
遍历目录下的文件时要用lstat而不能用stat
题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
1、配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。如果文件操作权限不够,则: cd /etc
题目 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 思路 排列 可分为两步 求所有可能出现在第一个位置的字符,就是把第一个字符和后面的所有字符交换 固定第一个字符
题目 0、1…n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 如0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3. class Solution {
题目 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
题目 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。 返回同样按升序排列的结果链表。 思路 1、cur指向当前节点,next指向当前节点的下一一节点,如果当前节点的值 与下一结点的值重复,删除下一结点 2、删除下一节点前,dup_nod
题目 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 思路 定义三个指针,指向当前节点的指针(pnode),指向当前节点的下一结点的指针(pnext),指向当前节点的前一节点的指针(pre,第一次初始化为空) 首先记录当前节点的下一结点,以为这里是更改链表中的指针,使pno
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路 如果一棵树只有一个结点,它的深度为1,如果根节点只有左子树而没有右子树,那么树的深度应该是其左子树的深度+1.同样如果根节点只有右子树而没有左子树,那么树的深度应该是
题目 请实现两个函数,分别用来序列化和反序列化二叉树 思路 根据先序遍历得到二叉树的序列,把结点为空的值用特殊数字代替,存入queue(原文使用流代替的,根据先进先出的思想,用队列也可实现),然后重建二叉树的时候: 如果此节点不为空(nullptr),递归建立左子树,递归建立右子树
题目 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路 一 需要找到字典序最小的哪个排列我求出所有的排列,然后排序后取最小。进一步转化问题为全排列问题,请参考http
remove 因为本算法作用的是iterator,所以并不会改变Container大小,会返回一个新的iterator new_last,是的first到new_last中的元素都不等于value,左端元素的相对位置不变 template <class ForwardIterator,class T
构建乘积数组,
dijkstra算法 求某一顶点到其它各个顶点的最短路径;已知某一顶点v0,求它顶点到其它顶点的最短路径,该算法按照最短路径递增的顺序产生一点到其余各顶点的所有最短路径。 对于图G={V,{E}};将图中的顶点分为两组: 第一组S:求出已知顶点的最短路径的集合
and和or mysql允许多个where子句,用and和or可以使用多个子句。and比or有更高的优先级。任何时候使用and和or都应使用圆括号操作符来明确的分组操作。 in 圆括号在where子句中还有另一种用法,in操作符来制定条件范围,范围中的每个条件都可以与之匹配。not可以对in取反。
数据库中数据表的格式一般不是应用程序所需要的格式,如: 拼接字段 在MySQL中的select语句中可以用concat(或Concat)函数拼接两列,concat需要指定一个或多个串,各串之间用逗号分隔。 使用别名 select拼接工作完成后,得到一个新的列,但这个新的列的民字是什么呢,他没有实际名
联结查询 1.关系表 主键:一列或一组列,能够唯一区分表中的每一行,用来表示一个特定的行 外键:为某个表中的一列,包含另一个表的主键,定义量表的关系。 2.创建联结 规定要连接的表和他们如何关联即可 在联结两个表时,将第一个表中的每一行与第二个表中的每一行配对,where子句作为过滤条件,只包含那些
插入 单行插入 1.insert into 表名 values(col1_value,col2_value,...); 每个列必须提供一个值,如果没有值,要提供NULL值 每个列必须与它在表中定义的次序相同 2.insert into 表名(col1,col2...) values(col1_val
MySQL检所操作返回一组称为结果集的行,游标是一个存储在MySQL服务器上的数据库查询,它不是一条select语句,而是被该语句所检索出来的结果集。只能用于存出过程。 声明游标 打开游标 关闭游标 close使用游标所使用的内部内存和资源,因此游标不使用时要关闭。 一个关闭后的游标不打开不能再次使
性质 查找 插入 先确定该元素要占据的层数 K
c++正则表达式
先切换到qt数据库驱动目录即:qt安装目录下的gcc_64/plugins/sqldrivers,然后 ldd libqsqlmysql.so 若libmysqlclient.so.18 not found,下载libmysqlclient.so.18即可,下载地址:https://launchpa
由于fork调用之后,父进程中打开的文件描述符在子进程中仍然保持打开,所以文件描述符可以很方便地从父进程传递到子进程。需要注意的是,传递一个文件描述符并不是传递一个文件描述符的值,而是要在接收进程中创建一个新的文件描述符,并且该文件描述符和发送进程中被传递的文件描述符指向内核中相同的文件表项。 在L
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2: 输入: "cbbd"输出: "bb" class Solution { public: string lon
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号