自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 求两个已排序单链表中相同的数据(C语言)

PSListNode ByeNode(DataType data){ PSListNode pNewNode = (PSListNode)malloc(sizeof(struct SListNode)); if (NULL != pNewNode) { pNewNode->data = data; //注意使开辟的新节点的指向为空

2016-04-14 20:07:28 1012

原创 求链表相交时的交点(C语言)

//链表相交时的交点PSListNode IntersectionNode(PSListNode pL1, PSListNode pL2){ int count1 = 0; int count2 = 0; PSListNode PSList1 = pL1; PSListNode PSList2 = pL2; PSListNode pMeetNode1 =

2016-04-14 20:06:16 845

原创 判断两个链表是否相交,若相交,求交点。(假设链表可能带环)【升级版】(C语言)

int IsListCroseWithCycle(PSListNode pL1, PSListNode pL2){ PSListNode pMeetNode1 = HasCycle(pL1); PSListNode pMeetNode2 = HasCycle(pL2); if ((NULL == pL1) || (NULL == pL2)) { re

2016-04-14 20:05:15 715

原创 判断两个链表是否相交,若相交,求交点。(假设链表不带环)(C语言)

int IsListCrose(PSListNode pL1, PSListNode pL2){ if ((NULL == pL1) || (NULL == pL2)) { return 0; } else { PSListNode PSList1 = pL1; PSListNode PSList2 = pL2

2016-04-14 20:04:22 564

原创 判断单链表是否带环?若带环,求环的长度?求环的入口点?(C语言)

PSListNode HasCycle(PSListNode pHead){ if ((NULL == pHead) || (NULL == pHead->pNextNode)) { return NULL; } else { PSListNode pFast = pHead->pNextNode->pNextNode;

2016-04-14 20:03:00 626

原创 查找单链表的倒数第k个节点,要求只能遍历一次链表(C语言)

PSListNode FindLastKNode(PSListNode pHead, int K){ if ((NULL == pHead) || (K <= 0)) { return NULL; } else { PSListNode pFast = pHead; PSListNode pSlow = pHe

2016-04-14 20:01:05 1146

原创 查找单链表的中间节点,要求只能遍历一次链表(C语言)

PSListNode FindMidNode(PSListNode pHead){ if (NULL == pHead) { return NULL; } else { //快慢指针,快指针一次循环走两步,慢指针一次循环走一步 PSListNode pSlow = pHead; PSListNo

2016-04-14 20:00:03 1023

原创 合并两个有序链表,合并后依然有序(C语言)

PSListNode MergeList(PSListNode pL1, PSListNode pL2){ PSListNode pNewNode = NULL; PSListNode pListNode1 = pL1; PSListNode pListNode2 = pL2; PSListNode pNode = NULL; if (NULL == pLi

2016-04-14 19:57:39 3168

原创 单链表排序(冒泡排序)(C语言)

优化版:void SortList(PSListNode pHead){ if (NULL == pHead) { return; } else { int flag = 0; PSListNode pTailNode = NULL; //当设置的尾节点与头结点指向同一个节点时,说明只...

2016-04-14 19:53:46 19430 9

原创 逆置/反转单链表(C语言)

1、逆置链表:前插法void ReverseList(PSListNode* pHead){ if (NULL == *pHead) { return; } else { //创建一个新的空链表,遍历pHead指向的链表里的所有节点,每找到一个,就前插到新链表里 PSListNode pNewHead = *pHead; *pHea

2016-04-14 18:51:39 945

原创 单链表实现约瑟夫环(JosephCircle)(C语言)

//使链表形成一个环void FormCyc(PSListNode *pHead){ if (NULL == pHead) { return; } else { PSListNode pNode = *pHead; while (NULL != (pNode->pNextNode)) {

2016-04-14 18:47:51 994

原创 在无头单链表的一个非头节点前插入一个节点(C语言)

①时间复杂度为N:void InsertNotHead(PSListNode pHead, PSListNode pos, DataType data){ PSListNode pPreNode = pHead; PSListNode pPreNode = pHead; if (NULL == pos) { return; } els

2016-04-14 18:45:52 885

原创 删除一个无头单链表的非尾节点(C语言)

void DelNotTailNode(PSListNode pos){ PSListNode pNode = NULL; assert(pos); if (NULL == pos->pNextNode) { return; } else { DataType temp = 0; //交换pos和

2016-04-14 15:40:23 2077 1

原创 从尾到头打印单链表(C语言)

void PrintListTailToHead(PSListNode pHead){ if (NULL != pHead) { //递归实现 PrintListTailToHead(pHead->pNextNode); printf("%d ", pHead->data); }}递归方式很容易就能实现。

2016-04-14 15:20:13 1746

原创 初识C++之多态

多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异,而采用不同的策略。 1、什么是多态   多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。它是面向对象程序设计(OOP)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。C++中的多态性具体体现在运行和编译

2016-04-13 22:42:20 773

原创 初识C++之虚函数

1、什么是虚函数   在基类中用virtual关键字修饰,并在一个或多个派生类中被重新定义的成员函数,用法格式为:   virtual 函数返回类型 函数名(参数表)    {     函数体    }    虚函数是实现多态性的关键,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。    看两个例子: ①没有定义基类的Fun函数为虚函数:#define _CRT_

2016-04-13 01:13:00 3703 2

原创 初识C++之封装

学习C++不得不说到C++的三大特性:封装、继承、多态,今天就先来剖析一下他的封装性。 1、什么是封装   封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。下面把一个汽车抽象为一个类来举例: 2、封装的目的   封装的目的是增强安全性和简化编程,它们分别体现在:   ①增强安全性:使用

2016-04-12 21:21:09 906

原创 初识C++之函数重载、重写、重定义的区别

在C++的学习中,慢慢接触了一些很容易混淆的名词,今天就来剖析几个容易混淆的名词。 1、函数重载   重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。想要构成重载函数必须要满

2016-04-12 19:56:31 3882

原创 初识C++之继承

1、何为继承  C++中所谓继承,就是在一个已存在类的基础上创建一个新的类,新类获得已存在类的部分特性(为什么是部分特性,后面会讲到)。已存在类被称为基类(Base Class)或父类(Father Class),新建类被称为派生类(Derived Class)或子类(Son Class)。 继承的声明形式: class 派生类名:[继承方式] 基类列表 {   派生类增加的特性; }

2016-04-11 17:30:51 2675

VC6.0批量添加和取消注释.zip

添加此宏之后,VC6.0可实现批量添加注释和取消注释,非常方便

2016-04-08

谷歌浏览器迅雷支持插件

使谷歌浏览器能支持迅雷下载

2016-03-25

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

TA关注的人

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