自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sunnylunch-blog

介绍c/c++基础知识,介绍一些项目。

  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 函数重载

1、什么是函数重载??? 在同一个作用域中,如果有多个函数的名字相同,但是形参列表不同(参数类型不同或参数个数不同),返回值类型可同也可不同,我们称之为重载函数。重载的函数是通过形参列表区分的,与返回值类型无关。函数重载其实是"一个名字,多种用法"的思想,不仅函数可以重载,运算符也可以重载。例如:现在要实现一个加法运算,运算子可以是整形也可以是浮点型,就可以通过重载实现。intAD

2016-06-27 17:27:58 23378

原创 求相交链表的交点

若链表相交的话,求取他们的交点???首先看看链表相交的情况,如图:解决这个问题的方法很多,下面我们介绍两种常见的方法:方法一:  假设现在是两条不带环的链表相交,如图:  分别统计两条链表的长度s1和s2,假设s1大于s2,则我们让head1先走上s1-s2步,让后再让head2也出发,则它们的相遇点就是交点。

2016-06-26 00:31:34 1359 1

原创 链表相交

判断两个链表是否相交???我们先来分析一下两个链表的相交问题,如图:两条链表都不带环:一条链表带环,一条不带环:两条链表都带环://如果两个链表都不带环int NotCycleCheckCross(pLinkNode head1,pLinkNode head2){ pL

2016-06-25 01:42:36 2906

原创 复制复杂链表

什么是复杂链表???     如图,这是一个复杂链表,每个结点包含两个指针域,其中next指针域相互连接构成一个单链表,而另一个指针域Sibling则随意指向链表中的任意位置,或者指向NULL。复制复杂链表!!!实现这个问题的方法比较多,下面来介绍三种方法。。方法一:    新建一个头结点,先不考虑Sibling,将整个单链表复制一份。然后寻

2016-06-25 00:58:44 2803

原创 Queue的基本算法

#ifndef __QUEUE_H__#define __QUEUE_H__#define _CRT_SECURE_NO_WARNINGS 1#include#include#include#include#define MAX 4typedef int DataType;typedef struct Queue{ DataType data[MAX]; int fron

2016-06-14 21:10:22 2593

原创 自杀环——约瑟夫环

约瑟夫环是一个数学的应用问题:已知有n个人,编号为1到n,围坐在一张圆桌周围,从第k个人开始报数(从1开始报),将数到m的人剔除出去,接下来的下一个人重新从1开始报数,如此反复进行,问最后一个被剔除的人是谁???假设现在有n个人,从第1个人开始报数,数到m的人被剔除。int check_last_del(int n,int m ){ int i = 1; in

2016-06-11 17:43:07 4098 1

原创 链表高级算法——2

一、判断两个链表是否相交int CheckCross(pLinkList list1, pLinkList list2) //判断链表是否相交{ assert(list1); assert(list2); pLinkNode cur1 = list1->pHead; pLinkNode cur2 = list2->pHead; if ((NULL==list

2016-06-10 17:31:39 2632

原创 寻找单独出现的数——通用技巧

请使用最快的方法,寻找单独出现的数。例1:在一组数据中,只有一个数出现一次,其余数都出现两次,请找出这个单独出现的数。例2:在一组数据中,只有一个数出现一次,其余数都出现三次,请找出这个单独出现的数。例3:在一组数据中,只有一个数出现一次,其余数都出现四次,请找出这个单独出现的数。例4:在一组数据中,只有一个数出现一次,其余数都出现五次,请找出这个单独出现的数。........

2016-06-10 09:28:09 2735

原创 链表高级算法--1

一、链表选择排序void SelectSort(pLinkList list) //选择排序{ assert(list); if (NULL == list->pHead || NULL ==list->pHead->next) //如果是空链表或者只有一个结点则直接结束 { return; } pLinkNode cur = list->p

2016-06-09 18:01:10 4696

原创 链表--基本算法

#ifndef __LINKLIST_H__#define __LINKLIST_H__#define _CRT_SECURE_NO_WARNINGS 1#include#include#includetypedef int DataType;typedef struct LinkNode{ DataType data; struct LinkNode *next;}Link

2016-06-05 00:05:50 5468

原创 排序--SelectSort优化

SelectSort:(以升序为例)    选择排序的基本思想:初始时,有序区为0,每一趟在无序区中选出一个关键字最小的元素,然后与无序区第一个元素交换,然后无序区减1,有序区加1,直到记录全部排完。    直接选择排序:第一趟排序在R[0..n]中选出一个关键字最小的与R[0]交换,第二趟在R[1..n]中选择一个最小的与R[1]进行交换,以此类推直到无序区的记录只剩一个时排序完成。

2016-06-03 19:21:05 3046 2

原创 排序--InsertSort优化

InsertSort:(以升序为例)插入排序的基本思想是:    每次将一个待排的记录,按照其关键字的大小,插入到前面已经排好序的有序区中适当的位置,直到全部记录插入完毕为止。    假设待排序的记录存放在数组R[0..n]中,初始时R[0]是一个有序区,R[1..n]是无序区,从i=1开始,依次将R[i]插入到有序区R[0..i-1]中,生成一个包含n个记录的有序区。

2016-06-03 16:58:59 3331

原创 排序--Bubble的三种优化

BubbleSort     冒泡排序是许多人接触的第一种排序方式,由于这种方式比较简单,所以大部分人也没有深入研究,所以写出的代码是这样的:void BubbleSort(int *arr, int len){ assert(arr); int i = 0; int j = 0; int tmp = 0; for (i = 0; i < len - 1; i++) {

2016-06-01 17:35:07 4217 2

C&&C++知识体系结构图

C,C++知识体系结构图

2016-09-09

空空如也

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

TA关注的人

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