自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 有序表查找(折半查找与插值查找)

有序表查找(折半查找与插值查找)#include "stdafx.h"#include <iostream>#include <string>using namespace std;//折半查找的时间复杂度为O(logn) 但对于需要频繁执行插入或删除操作//的数据集来说,维护有序的排序会带来不小的工作量,那就不建议使用int Binary_Search...

2018-04-19 23:22:47 323

原创 顺序表查找以及优化

顺序表查找以及优化#include "stdafx.h"#include <iostream>#include <string>using namespace std;bool search1(int *a, int n, int key){ for (int i = 0; i <= n; i++) { if (a[i] == key) ...

2018-04-19 22:38:57 322

原创 添加头结点管理二叉树线索链表

添加头结点管理二叉树线索链表#include "stdafx.h"#include <iostream>#include <string>using namespace std;struct ThreadBinaryTree{ char data; struct ThreadBinaryTree* leftChild; struct ThreadBi...

2018-04-19 20:06:42 945 4

原创 线索二叉树的结构实现

线索二叉树的结构实现#include "stdafx.h" #include <iostream> #include <string> using namespace std;struct ThreadBinaryTree{ char data; struct ThreadBinaryTree* leftChild; struct Thread...

2018-04-19 15:06:14 369

原创 剑指——二叉搜索树的后序遍历序列

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意俩个数字都互不相同思路:后序遍历得到的序列中,最后一个数字是树的根节点的值,数组中前面的数字可以分为俩部分 第一部分是左子树节点的值,它们都比根节点的值小 第二部分是右子树节点的值,它们都比根节点大#include <stdio.h>#include...

2018-04-16 16:29:16 173

原创 剑指——从上往下打印二叉树(按层遍历)

从上往下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。思路:每一次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队列的末尾,接下来到队列的头部取出最早进入队列的节点,重复前面的打印操作,直至队列中所有节点都被打印出来为止#include <stdio.h>#include <iostream>#include <dequ...

2018-04-16 14:37:30 212

原创 剑指——二叉树的镜像

请完成一个函数,输入一个二叉树,该函数输出它的镜像思路:先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的俩个子节点。当交换完所有非叶子节点的左右子节点之后,就得到了树的镜像#include <stdio.h>#include <iostream>#include <string>using namespace std;stru...

2018-04-16 13:03:48 195 1

原创 剑指——判断树的子结构

输入俩颗二叉树A和B,判断B是不是A的子结构。思路:1.在树A中找到和B的根节点的值一样的节点R 2.再判断树A中以R为根节点的子树是不是包含和树B一样的结构#include <stdio.h>#include <iostream>#include <string>using namespace std;struct BinaryTr...

2018-04-16 12:26:58 185

原创 二叉树的建立与遍历

二叉树的遍历:是指从根节点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。二叉树的遍历方法:1.前序遍历(中左右):规则是若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历左子树,再前序遍历右子树如图所示遍历顺序为:ABDGHCEIF2.中序遍历(左中右):中序遍历根结点的左子树,然后是访问个根结点,最后中序遍历右子树遍历顺序为:GD...

2018-04-14 12:12:07 365

原创 剑指——栈的压入、弹出序列

输入俩个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列 1,2,3,4,5是某栈的压栈序列,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不是该压栈序列的弹出序列思路:定义一个协助栈stack 先往stack中放入push序列中的值,并将stack的栈顶与pop序列中的值进行比较,一定要先比较不相...

2018-04-13 22:44:23 150

原创 合并俩个排序的链表

输入俩个递增排序的链表,合并这俩个链表并使新链表中的节点仍然是按照递增排序的#include <stdio.h>#include <iostream>using namespace std;struct ListNode{ int _value; struct ListNode* next;};ListNode* createList()...

2018-04-12 12:35:12 150

原创 反转链表 -剑指offer

定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点思路:需要定义3个指针 分别指向 前一个节点、当前节点、后一个节点 循环的同时不仅需要更改3个节点相互指向的关系 还要注意 3个指针的移动问题 指针也要随着循环的进行 同时后移 才能保证程序正确执行注:此题的反转链表与 文章分类中:c/链表list/自实现链表相关操作 下的链表反转方法不同#includ...

2018-04-11 23:03:52 208

原创 在O(1)时间删除聊表节点x

给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点思路:如果要用常规方法,找到被删除节点的前一节点,则需要顺序查找,时间复杂度是O(n) 所以要换一种方式 我们可以很方便地得到要删除的节点的下一节点,如果我们把下一节点的内容复制到需要删除的节点上,覆盖原有的内容,再把下一节点删除,就相当于删除所要删除的节点了  时间复杂度:对于n-1个非尾节点而言我们可以在O(1)时间实现操...

2018-04-11 17:37:01 130

原创 二进制中1的个数问题

例1:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数 例如把9表示成二进制是1001,有2为是1 因此输入9则该函数输出2#include <stdio.h>#include <iostream>using namespace std;#if 0为了避免死循环 我们左移1也就是二进制的0001 先和n进行&运算就能判断n的从右数第一位是不是1...

2018-04-11 10:59:43 208

原创 斐波那契数列的实现

斐波那契数列的实现数学结构:#include <stdio.h>#include <iostream>using namespace std;//递归表达式 数据大时 耗时会特别长 还可能发生栈溢出long Fbi2(int i){ if (i < 2) return (i == 0 ? 0 : 1); return Fbi2(i - 1) + F...

2018-04-10 20:14:14 220

原创 快速排序

快速排序的优化、复杂度以及使用情况#include <stdio.h>#include <iostream>#include <vector>using namespace std;#if 0快速排序是最慢的冒泡排序的升级 他们都属于交换排序类即它是通过不断比较和移动交换来实现排序的,只不过它的实现增大了记录的比较和移动的距离,将关...

2018-04-10 10:31:15 169

原创 冒泡排序的优化及时间复杂度分析

冒泡排序的优化及时间复杂度分析#include <stdio.h>#include <iostream>#include <vector>using namespace std;void BubbleSort1(vector<int> a){ for (int i = 0; i < a.size() - 1; i++)...

2018-04-09 21:24:53 1335

原创 用俩个队列实现一个栈,实现压栈和出栈的功能

用俩个队列实现一个栈,实现压栈和出栈的功能#include &lt;stdio.h&gt;#include &lt;iostream&gt;#include &lt;queue&gt;using namespace std;class MyStack{public: //入栈 void push(const char &amp; c) { q1.push(c)...

2018-04-09 16:34:09 324

原创 用俩个栈实现队列

用俩个栈实现一个队列,实现它的俩个函数appendTail和deleteHead。分别完成在队列尾部插入节点和在队列头部删除节点的功能#include &lt;stdio.h&gt;#include &lt;iostream&gt;#include &lt;stack&gt;using namespace std;class CQueue{public: CQueue(...

2018-04-09 14:51:21 106

原创 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出它的二叉树,并输出它的头结点。#include &lt;stdio.h&gt;#include &lt;iostream&gt;using namespace ...

2018-04-09 13:56:16 121

原创 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。#include &lt;stdio.h&gt;#include &lt;iostream&gt;using namespace std;#include &lt;string&gt;#include &lt;vector&g...

2018-04-08 14:37:43 370

原创 将一个字符串转化成整数

将一个字符串转化为整数#include &lt;stdio.h&gt;#include &lt;iostream&gt;using namespace std;#include &lt;string&gt;int str2Int(string s){ long long num = 0; int flag = 1; //标志位 int count = s.size(); if ...

2018-04-06 22:17:04 371

原创 练习11.12:编写程序,读入string和int的序列,将每个string和int存入一个pair中,pair保存在一个vector中。

#include <stdio.h>#include <iostream>using namespace std;#include <string>#include <vector>int main(int argc,char *argv[]){ string word; int i; vector<pair<st...

2018-04-03 13:43:05 595 2

原创 练习11.4:扩展你的程序,忽略大小写和标点。例如,"example."、"example,"和"Example"应该递增相同的计数器。

练习11.4:扩展你的程序,忽略大小写和标点。例如,"example."、"example,"和"Example"应该递增相同的计数器。#include &lt;stdio.h&gt;#include &lt;iostream&gt;using namespace std;#include &lt;string&gt;#include &lt;map&gt;int mai

2018-04-03 10:01:03 600

原创 编写程序,首先查找string"ab2c3d7R4E6"中每个数字字符,然后查找其中每个字母字符。

#include <stdio.h>#include <iostream>#include <string>using namespace std;int main(int argc,char *argv[]){ string s = "ab2c3d7r4e6"; string s1 = "1234567"; string s2 = "abc...

2018-04-02 11:19:47 286

原创 编写一个函数,接受三个string参数是s、oldVal 和newVal。使用insert和erase函数将s中所有oldVal替换为newVal。

void fun(string &s, string oldVal, string newVal){ string::size_type pos = 0; //int pos = 0; //避免使用int等带符号类型来储存size_type while (pos<s.length()) { pos = s.find(oldVal, pos);//从零号位置开始查找...

2018-04-02 10:04:48 766

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除