- 博客(11)
- 收藏
- 关注
原创 两个有序链表的合并
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 1.递归方法struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};ListNode* Merge(ListNode*
2017-10-13 11:03:57 249
原创 约瑟夫问题2
约瑟夫问题是一个著名的趣题。这里我们稍稍修改一下规则。有n个人站成一列。并从头到尾给他们编号,第一个人编号为1。然后从头开始报数,第一轮依次报1,2,1,2…然后报到2的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3…报到2,3的人出局。以此类推直到剩下以后一个人。现在需要求的即是这个人的编号。
2017-10-13 10:42:18 606
原创 约瑟夫问题1
约瑟夫问题1: 约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。 1.1数组法: 用一个数组记录所有人的状态,初始值为各自的变化,如果位置的人出局,则将其值设为0。int getResult(int n, int m) { // write code here
2017-10-12 23:08:04 611
原创 链表的反转
基本的算法思想: 首先要考虑链表为空和链表只有一个节点的情况; 在每一次反转的时候,需要记录当前节点的下一个节点和上一个节点,然后让其的next指针指向其前一个节点。ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL || pHead->next==NULL) return pHead;
2017-10-12 22:38:07 162
原创 判断两个链表是否相交,及其第一个公共交点
输入两个链表,找出它们的第一个公共结点。 算法思路:若两个链表相交,则从交点开始连个链表的交点都相同。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {publi
2017-10-11 17:06:49 227
原创 判断一个链表是否有环,并找出环的入口
一个链表中包含环,请找出该链表的环的入口结点。 ListNode* EntryNodeOfLoop(ListNode* pHead) { if(pHead==NULL || pHead->next==NULL) return NULL; ListNode *fast=pHead; ListNode *slow=pHead
2017-10-11 16:42:05 207
原创 链表的单个节点的删除
实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。 给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true 算法思路: 利用该节点可以访问其下一个节点,可以将下一个节点的值复制给该节点,将下一个节点删除。struct ListNode { int val; struct ListNode *next; ListNode(int
2017-10-10 14:23:17 844
原创 找出单链表的倒数第k个节点
首先需要对单链表进行检查,判断是否为空链表; 判断k的值是否合理; k的值是否大于链表的长度,k的值是否为0。struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};class Solution {publi
2017-10-10 14:06:31 311 1
原创 类外定义的运算符的重载
在进行运算符的重载时,必须定义一个运算符重载函数,名字为operator,后随一个要重载的运算符。如:operator +; operator -;operator *;operator /;C++中运算符重载的规则:1.C++中绝大部分的运算符都可以重载,不能进行重载的运算符如下:. 成员访问运算符.*成员指针访问运算符::作用域运算符Sizeof 长度运算符?:
2017-03-27 20:33:08 6144
原创 类的构造函数和析构函数
1.类的构造函数类的构造函数专门用于构造新对象、将值赋给它们的数据成员。构造函数没有声明类型。(1)声明和定义构造函数对于Stock类,它的构造函数为Stock(){ ....................}构造函数的参数表示的不是类成员,而是赋给类成员的值。因此,构造函数的参数名不能与类成员相同。(2)默认构造函数如果没有提供任何构造函数,则C
2017-01-13 16:33:00 322
原创 二叉树的存储结构
1.二叉树的顺序存储结构二叉树的书序存储结构就是用一组地址连续的讯处单元来存放二叉树的数据元素。二叉树的顺序存储结构存放节点的顺序为:对改树中的所有节点进行编号,编号从小到大的顺序就是节点存放在里阿奴存储单元的先后次序。编号的过程:首先将根节点的编号定为1,然后按照从上到下、从左到右的顺序对每一个节点进行编号。二叉树的顺序存储结构类型定义:typedef ElemTyp
2017-01-03 20:40:20 358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人