- 博客(17)
- 收藏
- 关注
原创 获取字节
获取字节通过数据移位操作获取字节#include <stdio.h>typedef unsigned int uint32_t;#define GET_BYTE_0(x) ((x >> 0) & 0x000000ff)#define GET_BYTE_1(x) ((x >> 8) & 0x000000ff)#define GET_BYTE_2(x) ((x >> 16) & 0x000000ff)#define
2021-01-20 10:04:49 432
原创 C语言实现回文数判断
C语言实现不使用字符串的整数回文数判断题目来源:LeetCode题库判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:不将整数转为字符串来解决这个问题思
2020-10-10 15:20:14 3399
原创 C语言实现整数反转
C语言实现整数反转题目来源:LeetCode题库给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。例子1:输入: 123输出: 321例子2:输入:-123输出:-321例子3:输入:1230输出:321注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。代码实现:#include<stdio.h>#include <li
2020-10-09 15:49:25 12000
原创 C语言实现字符串反转操作
C语言实现字符串反转操作其实思路很简单,就是利用一个中间变量,将字符串的第一个字符和最后一个字符对调,直到到达字符串中间结束,实现代码如下:#include<stdio.h>#include<string.h>// 反转字符串void reverseString(char* s, int sSize){ int start = 0; // 获取左边字符串 int end = sSize - 1; // 获取右边字符串 char tempchar = 0;
2020-10-08 15:27:35 18301 1
原创 队列的链式存储结构
1、队列的链式存储结构 (1)链队列中结点结构和单链表一样,指针域指向队列中的下一个元素,定义如下// 定义队列结点typedef struct QNode{ ElemType data; struct QNode* next;}QNode, *QNodePrt;// 定义队首、队尾指针typedef struct{ QNodePrt front, rear;}LinkQueue; (2)链队列的初始化// 初始化队列Status InitQueue(
2020-09-20 20:13:25 1742
原创 C语言实现栈的链式存储结构
C语言实现栈的链式存储结构/* * @Author: xgh * @Date: 2020-06-23 22:25:32 * @LastEditTime: 2020-06-28 14:44:10 * @LastEditors: Please set LastEditors * @Description: 栈的链式存储结构 * @FilePath: \VS-CODE-C\.vscode\StackLinkedList\stackLinkedLists.c */#include <stdi
2020-06-28 15:04:01 294
原创 C语言实现栈的基本操作
C语言实现栈的基本操作(附二进制转十进制操作)/* * @Author: xgh * @Date: 2020-06-17 21:34:45 * @LastEditTime: 2020-06-20 10:17:52 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \VS-CODE-C\.vscode\Stack\stack.c */ #include <s
2020-06-20 10:24:37 429
原创 C语言实现双向循环链表
C语言实现双向循环链表题目:要求实现根据要求的数字,使26个字母排序发生变化,例如数字为3,输出结果:DEFGHIJKLMNOPQRSTUVWXYZABC同时支持负数,如-3XYZABCDEFGHIJKLMNOPQRSTUVW代码/* * @Author: xgh * @Date: 2020-06-16 21:16:26 * @LastEditTime: 2020-06-17 10:09:12 * @LastEditors: Please set LastEditors * @Desc
2020-06-17 13:02:29 351
原创 C语言实现判断单链表中是否有环
C语言实现判断单链表中是否有环判断单链表中是否存在环的两种思路计算步数思路:定义两个指针p,q,都指向头结点,p一直后移,q每次后移到和p相同的结点,判断p是否等于q,不等于则p继续后移,q重新头结点开始计数,循环中,分别用两个变量记录循环的次数,当p==q,而两个步数变量却不相等时,说明p指针已经经过回环一次,说明链表中存在环。快慢指针确定环入口思路:第一步找出两个指针的相遇点,第二步让快指针从相遇点开始走,让慢指针从链表的最开始走,快慢指针每次各走一步,当两个指针相遇了,即是入口点
2020-06-14 22:45:03 2219 1
原创 C语言写单向链表解决约瑟夫问题
C语言写单向链表解决约瑟夫问题约瑟夫问题简介:据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从,Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死
2020-06-14 10:28:52 880
原创 C语言实现单向循环链表
C语言实现单向循环链表循环链表简介循环链表的结构和单链表结构一样,不过对于单链表,每个结点只存储了向后的指针,到了尾标志就停止了向后链的操作,这样知道某个结点却无法找到它的前驱结点。将单链表中的终端点的指针由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为循环单链表,简称循环链表。代码实践data.h/* * @Author: xgh * @Date: 2020-06-08 22:52:43 * @LastEditTime: 2020-06-13 21:44:44
2020-06-14 08:14:48 1528
原创 快慢指针查看单链表的中间值
快慢指针查看单链表的中间值单链表的实现:https://blog.csdn.net/weixin_43290957/article/details/106465659普通方法:首先遍历一遍获取总长度L,然后再次遍历循环至L/2即可;时间复杂度为:O(L+L/2)=O(3/2L)快速方法:快慢指针法,设置2个指针faster,mid都指向单链表的头节点,其中faster移动的速度为mid的2倍,当faster移动到末尾,mid即在中间位置了,以下是简单实现:/** * @description:
2020-06-03 23:54:43 363
原创 C语言实现静态链表介绍
C语言实现静态链表介绍静态链表其实是为了给没有指针的编程语言设计的一种实现单链表功能的方法。3.1静态链表的优缺点优点:在插入和删除操作时,只需要修改游标,不需要移动元素,从而改进了在顺序储存结构中的插入和删除操作需要移动大量元素的缺点。缺点:没有解决连续存储分配(数组)带来的表长度难以确定的问题。失去了顺序储存结构随机存取的特性。3.2实现原理1、使用结构体数组,结构体有指针域 cur 和数据域 data2、一个数组分量表示一个节点,用cur代替指针指示节点在数组中的相对位置
2020-06-03 22:19:18 797 2
原创 C语言实现单链表(及部分概念解析)
C语言实现单链表线性表与单链表的区别存储类别顺序存储结构单链表存储分配方式用一段连续的存储单元依次存储线性表的数据元素采用链式存储结构,用一组任意的存储单元存放线性表的元素时间性能查找O(1)、插入和删除O(n)查找O(n)、插入和删除O(1)空间性能需要预分配存储空间,分大了浪费,小了容易发生上溢不需要分配存储空间,只要有就可以分配,元素个数不受限制通过上面的对比,可以得出一些经验性的结论:若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序
2020-06-01 09:51:34 530
原创 C语言实现顺序线性表
C语言实现顺序线性表(附二分查找)具体代码如下:宏定义和表结构体头文件/* * @Author: xgh * @Date: 2020-05-29 17:11:55 * @LastEditTime: 2020-05-29 22:09:26 * @LastEditors: Please set LastEditors * @Description: 宏定义和线性表结构体定义头文件 * @FilePath: \VS-CODE-C\.vscode\linearLine\.h */#ifnd
2020-05-29 22:40:26 632
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人