C语言
文章平均质量分 52
圈圈圆圆圈圈_
嘘...!
展开
-
【C语言】深度理解函数的调用过程(栈帧)
【C语言】深度理解函数的调用过程(栈帧)本文是在栈帧层面来深度理解函数的调用过程,那么栈帧具体在内存的那个地方? 下面利用简单的调用求和函数深度理解函数的调用过程#include <stdio.h>int Add(int x, int y){ int z = 0; z = x + y; return z;}int main(){ ...原创 2018-07-29 09:43:51 · 1768 阅读 · 0 评论 -
【链表面试题】复杂链表的复制
复杂链表的结构体 typedef struct ComplexNode { int data; struct ComplexNode *next; struct ComplexNode *random;} CN;初始化CN * CreateNode(int data)//初始化{ CN *node = (CN *)malloc(sizeof(CN)); node->d...原创 2018-10-28 10:54:53 · 121 阅读 · 0 评论 -
【链表面试题】判断两个链表是否相交,若相交,求交点。(不带环)
判断两个链表是否相交,并求出交点原创 2018-10-31 11:33:06 · 269 阅读 · 0 评论 -
【链表面试题】判断单链表是否带环?若带环,求环的长度?求环的入口点?
判断单链表是否带环原创 2018-10-31 11:51:49 · 190 阅读 · 0 评论 -
【链表面试题】判断两个链表是否相交,若相交,求交点。(假设链表可能带环)
相交的版本原创 2018-10-31 19:33:31 · 191 阅读 · 0 评论 -
【链表面试题】单链表实现约瑟夫环(JosephCircle)
原创 2018-10-31 20:27:07 · 319 阅读 · 0 评论 -
【C语言】二分查找
非递归//二分查找typedef int ssize_t;typedef unsigned int size_t;//二分查找typedef int ssize_t;typedef unsigned int size_t;//非递归ssize_t BinarySearch(int array[], size_t size, int data){ size_t left, rig...原创 2018-10-31 20:41:16 · 501 阅读 · 0 评论 -
【链表面试题】合并两个有序链表, 合并后依然有序
代码// 合并两个有序链表 SListNode * MergeOrderedList(SListNode *p1First, SListNode *p2First){ SListNode*cur1 = p1First; SListNode*cur2 = p2First; SListNode*result = NULL;//结果链表 SListNode*tail = NULL;//结果...原创 2018-10-31 22:17:02 · 684 阅读 · 0 评论 -
【链表面试题】求两个已排序单链表中相同的数据
整体思路1.分别创建两个结点变量cur1,cur22.cur1->data和cur2->data比较3.如果cur1->data大于cur2->datacur2 = cur2->next4.如果cur1->data小于cur2->datacur1 = cur1->next5.如果cur1->dat原创 2018-11-06 21:09:03 · 1011 阅读 · 0 评论 -
【链表面试题】遍历一次,找到中间结点
整体思路原创 2018-11-06 23:07:44 · 850 阅读 · 0 评论 -
两数之和
题目要求给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]初始答案/** * Note: The returned array must be m...原创 2018-11-08 20:15:58 · 135 阅读 · 0 评论 -
【链表面试题】遍历一次,找到倒数第 k 个结点(k从1开始)
整体思路1.双指针指针A在前面第K个,指针B在指针A的后面2.当指针A指向NULL的时候,就找到了倒数第K个结点代码部分// 遍历一次,找到倒数第 k 个结点(k从1开始) void FindK(SListNode *pFirst, int k) { k = 2; SListNode *forward = pFirst; SListNode *backward = pFirs...原创 2018-11-08 21:17:43 · 261 阅读 · 0 评论 -
【链表面试题】遍历一次,删除倒数第 k 个结点(k从1开始),不能用替换删除法
整体思路1.上次所学方法的延伸找到倒数第K个结点2.找到倒数第K+1个结点3.倒数K+1的结点指向K结点的下一个结点代码原创 2018-11-08 21:29:46 · 492 阅读 · 0 评论 -
【链表面试题】倒叙和反转单链表
链表面试题倒叙打印链表倒叙打印链表// 倒叙打印链表 void ReversePrint(SListNode *pFirst){ SListNode *cur = NULL; SListNode *last = NULL; while (last!=pFirst) { cur = pFirst; while (cur->Next != last) { cu...原创 2018-09-26 18:14:50 · 344 阅读 · 0 评论 -
【数据结构】单链表的各种功能实现(C语言)
单链表的存储方式原创 2018-09-20 13:38:23 · 42892 阅读 · 4 评论 -
【C语言】 操作符
C语言中的操作符按照功能或使用方式分为:目录一、算术操作符二、移位操作符三、位操作符(位操作符是对操作数对应的位进行指定的操作)四、赋值操作符五、单目操作符六、关系操作符七、逻辑操作符八、条件操作符九、逗号操作符十、下标引用、函数调用和结构成员1、算术操作符 + - * /(两数相除取整) %(两数相除取...原创 2018-06-17 22:33:20 · 381 阅读 · 0 评论 -
【C语言】数组,指针的相关运算
一维数组#include <stdio.h>#include <string.h>int main(){ //一维数组 int a[] = { 1,2,3,4 }; printf("%d\n", sizeo原创 2018-07-29 11:20:43 · 686 阅读 · 0 评论 -
【C语言】指针模拟实现字符串函数和内存操作函数
字符串函数strlenstrcpy strcat strstr strchr 内存操作函数memcpymemmove原创 2018-08-05 09:20:08 · 1138 阅读 · 0 评论 -
【C语言】指针的相关内容
指针的使用,方便了内存的管理,既然要了解指针的相关内容,首先就要了解一下指针是什么?再来了解相关内容。指针是什么? 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内...原创 2018-08-09 17:37:56 · 210 阅读 · 0 评论 -
【C语言】函数指针数组的用途:转移表
提到转移表,用简单计算器的一个例子来解释一下最好不过了。原创 2018-08-09 18:04:37 · 407 阅读 · 0 评论 -
【C语言】使用回调函数,模拟实现qsort(采用冒泡的方式)
#include <stdio.h>#include <string.h>int int_cmp(const void*p1, const void*p2){ return (*(int*)p1 > *(int*)p2);}原创 2018-08-10 15:18:56 · 186 阅读 · 0 评论 -
【C语言】main函数的参数解析
main函数每个C程序都必须有一个main函数,main函数又称为主函数,是执行程序的起点,它被称之为函数,是否会像平时使用函数时需要自己的参数呢? 答案是肯定的,那么他都有那些参数呢?main函数的在vs2017环境下调试,可以看到main函数里的三个参数#include <stdio.h>int main(){ return 0;} 可以看到,...原创 2018-08-02 14:39:51 · 3997 阅读 · 0 评论 -
【C语言】可变参数列表源码解析
主函数在调用函数时,会进行传参,当实参的数量发生变化但被调用函数的功能没有发生改变,这时候被调用函数的参数数量也要发生改变。C语言中有一个比较有意思的实现——可变参数列表 可变参数列表,通过将函数实现为可变参数的形式,可以使得函数可以接受1个以上的任意多个参数(不固定)。举个例子: 实现一个函数可以求任意个参数的平均值#include <stdio.h>...原创 2018-08-03 10:28:38 · 434 阅读 · 0 评论 -
【数据结构】静态顺序表各种功能实现(C语言)
顺序表的存储方式定义一个顺序表#define MAX_SIZE (100) typedef int DataType; typedef struct SeqList { DataType data[MAX_SIZE]; int size; } SeqListR;顺序表要实现的功能 void InitSeqList(SeqListR *pSeq); //初始化...原创 2018-09-19 12:37:50 · 1132 阅读 · 1 评论 -
【数据结构】动态顺序表和静态顺序表的对比(C语言)
静态顺序表的定义#define MAX_SIZE (100) typedef int DataType; typedef struct SeqList { DataType data[MAX_SIZE]; int size; } SeqListR;动态顺序表的定义typedef int DDataType;typedef struct{ DDataTyp...原创 2018-09-19 13:21:22 · 2003 阅读 · 0 评论 -
【C语言】注释转换(C注释转换为C++注释)
C语言注释的风格C++语言注释的风格如何转换原创 2018-09-25 15:33:13 · 171 阅读 · 0 评论 -
【C语言】自定义类型
结构体联合体枚举原创 2018-09-20 13:31:23 · 212 阅读 · 0 评论 -
【链表面试题】 删除非尾无头链表
整体思路代码测试结果原创 2018-11-08 21:46:27 · 197 阅读 · 0 评论