
C语言
文章平均质量分 79
凉夏y
这个作者很懒,什么都没留下…
展开
-
OJ题:设计一个循环队列
(本题取自LeetCode622.设计循环队列)1.题目介绍循环队列是指一种线性的数据结构,该结构遵循先进先出的原则,并且队尾则被连接在队首之后以形成一个循环。循环队列可以循环使用队列之前用过的空间,普通队列的头元素前的节点不能再使用,而循环队列可以在队列没有满之前循环的使用空间。对于循环队列我们需要支持如下的操作:1.构造一个队列长度为k的循环队列2.从队首获取元素,若队列为空则返回-13.获取队尾元素,若队列为空则返回-14.向循环队列插入一个元素,若成功插入则返回.原创 2021-11-01 21:54:08 · 554 阅读 · 2 评论 -
堆与堆排序
堆排序是指利用堆这种数据结构对数据进行排序的算法。要了解堆排序,我们要先对堆进行一定的了解。堆堆是一种特殊的完全二叉树。在完全二叉树的基础上,堆还有以下特点:堆的每个父节点都大于等于其所有子节点 这类堆被称为大堆或者堆的每个父节点都小于等于其所有子节点 这类堆被称为小堆比如下面的二叉树就是一个小堆堆的向下调整算法了解了堆的基本概念后,我们来了解如何将一个完全二叉树转变为堆。首先,我们可以利用向下调整算法将一个左右子树都为堆(要得到小堆则两个子树都要是小堆,要得到大堆.原创 2021-10-23 14:34:38 · 258 阅读 · 0 评论 -
与随机读取有关的函数
通过文件操作我们可以实现对通讯录的保存,但是要在文件的具体位置进行操作,又要怎么实现呢?下面我们介绍与随机读取操作有关的三个函数。fseek函数fseek函数可以实现文件指针的偏移操作。fseek函数的声明如下int fseek(FILE *stream, long int offset, int whence)其中stream为要操作的文件指针,offset则为文件指针的偏移量,whence则为偏移offset的起始位置,whence一般指定为SEEK_SET:文件的起始位置、SEE原创 2021-10-04 16:07:14 · 229 阅读 · 0 评论 -
用C语言实现文件版的通讯录
1.为什么要进行文件操作在往期,我们使用C语言构造过通讯录,但是无论是一次性开辟好空间的通讯录,还是动态版的通讯录,都无法做到退出通讯录后将信息保存下来。但是通过文件操作,我们可以在退出通讯录时将信息保存到文件中,并且在再次打开时读取信息到程序中,以达到每次打开时能信息的功能。2.如何保存通讯录在C语言里,有文件操作函数帮助我们将程序中的信息保存到文件中。为了保存通讯录,我们将会用到fopen,fclose,fwrite以及fread函数。通过这四个函数,我们可以在关闭程序时将信息写入到文件中,原创 2021-10-04 11:38:40 · 394 阅读 · 0 评论 -
通讯录的动态版本的实现
前几天我们使用C语言创建了一个固定大小的通讯录,这次我们在原有的基础上将其修改为动态大小的通讯录。1.malloc、calloc、realloc以及free函数的介绍1.malloc与calloc函数malloc函数的函数声明为void *malloc(size_t size)其函数功能为,在堆上开辟一块size个字节的空间,开辟成功后以void*类型返回这块空间的起始地址。若开辟失败,则返回NULL。calloc函数的函数声明为void *calloc(size_t nit原创 2021-09-23 22:11:01 · 171 阅读 · 0 评论 -
用C语言实现通讯录
1.框架构造首先,为了构造一个通讯录,我们定义一个结构体peoinfo存放每个人的信息:#define NAME_MAX 20#define SEX_MAX 5#define TELE_MAX 12#define ADDR_MAX 20struct peoinfo//定义一个结构体保存一个人的信息{ char name[NAME_MAX];//姓名 int age;//年龄 char sex[SEX_MAX];//性别 char tele[TELE_MAX];//电话原创 2021-09-18 17:57:50 · 1749 阅读 · 0 评论 -
C语言<string.h>头文件所包含的部分函数的解析
strlenstrcatstrcpystrcmpstrncatstrncpystrncmpstrtokstrstrmemmovememcpy原创 2021-09-15 19:50:15 · 1378 阅读 · 0 评论 -
C语言指针指针练习讲解
你能思考得到如下程序运行的结果吗?#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ char* c[] = { "enter","new","point","first" }; char** cp[] = { c + 3,c + 2,c + 1,c }; char*** cpp = cp; printf("%s\n", **++cpp); printf("%s\n", *-- * ++cpp + 3原创 2021-09-08 18:14:19 · 653 阅读 · 1 评论 -
用冒泡排序模拟实现qsort函数
有这么一个问题。给定一个包含[0, n]中n个数的数组nums,找出[0, n]这个范围内没有出现在数组中的那个数。原创 2021-09-07 14:16:46 · 262 阅读 · 0 评论