自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 注释转换

功能思想: 1)注释分为两种:c 语言注释和 c++ 注释 2)文本状态分为四种: 普通状态(即NULLSTATUS) C++状态(即CPPSTATUS) C 状态(即CSTATUS) EOF状态(即EOFSTATUS)3)四种状态关系图具体实现: 普通状态 —– C 状态(或C++ 状态) /* int i = 0; *

2017-12-07 18:48:19 360 1

原创 通讯录--文件存储

功能要求添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系人 以名字排序所有联系人 实现思想采用多文件实现功能,避免程序混乱利用转移表(函数指针数组)减少代码量采用动态内存,节省了内存空间使用结构体保存通讯录信息使用I/O流的概念,并使用IO函数,完成通讯录的文件存储具体代码:contact.h#ifndef

2017-12-04 16:24:05 613

原创 【单链表面试题】------复杂链表的复制

问题描述: 一个链表的每一个节点,有一个指向next指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求实现复制这个链表,返回复制后的新链表 先来看复杂链表的结构(配图) typedef struct ComplexListNode { DataType _data; struct ComplexListNode* _nex

2017-12-31 15:51:33 307

原创 【单链表面试题】------链表相交问题

思考: 两个链表相交,其特点为两个链表共用一个尾;但这两个链表可分为以下两个情况: 情况1:两个链表不带环 情况2:两个链表可能带环其中情况2又可分为以下几种问题: 两个链表都不带环 和情况1是相同的(具体如图1) 一个链表带环,一个不带环 结论:一定不相交 两个链表都带环 a. 不相交 b. 相交 1)环内相交 ...

2017-12-30 21:24:49 445

原创 【单链表面试题】-----链表带环问题

判断单链表是否带环,并求得相遇点 思路:快慢指针问题,(前面已经讲过快慢指针原理,在这里不再详细描述) 当快指针比慢指针多走一步,在某个环内一定会相遇在某一点;反过来则有:当两个快慢指针在某一点相遇,这个链表一定是带环的链表,反之不带环(具体过程如图)具体代码://链表是否带环(并返回相遇点)SListNode* SListIsCircle(SListNode* list...

2017-12-30 19:30:51 287

原创 【单链表面试题】------快慢指针问题

快慢指针求解查找链表的某一节点(条件:只能遍历一次链表) 思路:没有只能遍历一次链表这个条件时,我们>通常想到的方法是遍历多次链表,但有了这个条>件,我们尝试同时用两个指针(即 fast 和 slow)来遍历链表,当这两个指针从链表的头走到尾时,两个指针走的步数相差某一值时便可达到目的1. 查找单链表的中间节点,要求只能遍历一次链表(具体过程如下图)分析:这里查找中间节点时,快指走 2 步,慢

2017-12-29 17:52:47 404

原创 【单链表面试题】------有序链表的合并

合并两个有序链表,合并后依旧有序(以升序为例) 两种算法 1)循环;从头到尾遍历两个链表,比较大小,将较小的数据拿下来尾插 2)递归代码:非递归://合并两个有序单链表,合并后依旧有序SListNode* SListCombineSort(SListNode* list1, SListNode* list2){ SListNode* cur1 ...

2017-12-29 16:45:31 229

原创 【单链表面试题】--------链表的逆置

逆置单链表 两种方法 1)利用头插法,和前面讲述的从尾到头是一个道理,不在做详细研究 2)三个指针翻转(具体过程如下图)代码:/*三个指针*/SListNode* ReverseList(SListNode* pHead){ SListNode* n1, *n2, *n3; if (pHead == NULL || pHead->_next == NULL)

2017-12-29 16:41:19 280

原创 【单链表面试题】------链表的打印,删除,插入

从尾到头打印单链表 几种方法: 1)头插法打印;将原有单链表进行头插,在将其新的链表打印出来(会重新开辟空间,故不建议这种做法) 2)递归法打印;当递归到链表的尾时,返回,并打印链表的数据 3)循环法打印;(过程如下图)代码: /*头插法*/void SListPrintBackToFront(SListNode* pHead){ asser...

2017-12-29 16:37:03 316

原创 字符串右移

字符串右旋题目描述: 请实现字符串右循环移位函数,比如:“abcdefghi” 循环右移2位就是“hiabcdefg” 函数原型: void RightLoopMove(char *pstr,unsigned short steps) 函数参数说明: pstr: Point to a ‘\0’ terminated string steps:

2017-12-29 16:25:41 1234

原创 链表的增、删、查、找

基本结构 typedef int DataType; typedef struct SListNode { struct SListNode* _next; DataType _data; }SListNode;链表结构分为两部分,一部分是数据域,存放的是节点的数据部分,另一部分是指针域,保存下一节点的地址新建节点 和动态顺序表不...

2017-12-20 21:01:32 261

原创 动态顺序表的增、删、查、找

顺序表 同数组一样,一段连续的空间,地址由低到高 分为静态顺序表和动态顺序表静态顺序表typedef int DataType; struct SeqList{ DataType _arr[100]; //顺序表的空间大小 int _size; //当前空间有效数据的大小 };动态顺序表typedef int DataType;struct Se

2017-12-16 21:56:42 326

原创 时间复杂度和空间复杂度

时间复杂度定义 一个函数,该函数计算的是执行基本操作的次数表示方法 —- O(N) 一般用 O(N)来表示算法的时间复杂度,N为函数中增长速率最快的表达式一般算法 O(N) 计算方法 忽略常数项,时间复杂度为O(1) 取最坏情况的时间复杂度和增长最快的表达式 递归算法的时间复杂度:递归总次数*每次递归次数几个例子例1: int mul(int n){ if

2017-12-07 20:45:46 242

原创 C 清空输入缓冲区,以及fflush(stdin)的使用误区和解决方法

对C 语言初学者来说,fflush(stdin)函数被解释为会清空输入缓冲区的一个系统函数,这是一个曾经几乎对过一半的说法,随着计算机科学的进步,在学习的过程中的逐步完善,将fflush(stdin)函数的过去与现在分析一下。Personal thinking:fflush(stdin) 会清空输入缓冲区中的内容,读取时输入缓冲区中的内容会被scanf函数逐个取走,正常case下sca

2017-12-05 16:43:39 2231 3

空空如也

空空如也

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

TA关注的人

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