C语言
destination00
这个作者很懒,什么都没留下…
展开
-
gcc 与 g++的区别
转载自:http://www.cnblogs.com/wb118115/p/5969775.html# gcc 与 g++的区别其实在这之前,我一直以为gcc和g++是一个东西,只是有两个不同的名字而已,今天在linux下编译一个c代码时出现了错误才找了一下gcc和g++的区别。先描述一下今天遇到的错误:因为以前写程序的时候,写的都是cpp文件,然后就直接使用g++编译,没出错,也就没有在...转载 2019-05-31 17:55:14 · 891 阅读 · 0 评论 -
字符串指针与字符串数组
C/C++中每一个字符串都以‘\0’结尾,以方便找出字符串的尾部。但由于这个特点,会存在额外的开销,不小心导致越界的情况。如下面的代码:char str[10];strcpy(str,"0123456789");"0123456789"看起来只有十个字符,但是我们在复制的时候需要在字符串的末尾加上’\0’,因此要正确复制该字符串,至少需要一个长度为11个字节的数组。为了节省内存,C/C+...原创 2019-06-11 12:41:52 · 2610 阅读 · 1 评论 -
字符串替换空格
请实现一个函数,把字符串中的每个空格替换成‘%20’,例如:输入"we are happy",则输出"we%20are%20happy"。要求算法时间复杂度O(n);思路:从字符串的后面开始插入替换字符;首先遍历整个字符串得到插入后的总长度和空格的个数,再用两个指针分别指向:p1指向替换前字符串的末尾,p2指向替换后字符串的末尾;当p1指向不是空格时,将其内容插入p2所在内存;当p1指...原创 2019-06-11 15:56:57 · 252 阅读 · 0 评论 -
从尾到头打印一个单链表
输入一个单链表的头结点,从尾到头打印整个链表每个节点的值两种思路:1.不破坏单链表的结构,用栈或者递归的方式实现反转打印;2.反转整个链表,再打印每个节点的值。(1)利用栈的数据结构来实现void PrintList_reverse(ListNode* head){ std::stack<ListNode*> nodes; ListNode* p=head; whil...原创 2019-06-11 16:33:54 · 405 阅读 · 0 评论 -
二叉树的三种遍历方式(递归和循环)
如图所示二叉树:对其分别进行前、中、后续遍历;先序遍历:(1)递归void preorder(TreeNode* root){ if(root==NULL) return; cout<<root->data<<" "; preorder(root->left); preorder(root->right);}(2)非递归(循环...原创 2019-06-11 18:32:09 · 460 阅读 · 0 评论 -
路径总和II
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22,返回:实现代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode ...转载 2019-06-17 14:50:20 · 109 阅读 · 0 评论