自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++入门基础

C++的起源可以追溯到1979年,当时Bjarne Stroustrup(本贾尼·斯特劳斯特卢普,这个翻译的名字不同的地方可能有差异)在贝尔实验室从事计算机科学和软件⼯程的研究⼯作。面对项目中复杂的软件开 发任务,特别是模拟和操作系统的开发⼯作,他感受到了现有语言(如C语言)在表达能力、可维护性和可扩展性方面的不足。

2024-07-19 12:03:42 299

原创 C语言数据结构堆排序

堆排序是一种树形选择排序,在排序过程中,将待排序的记录看成一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系,在当前无序的序列中选出关键字最大或最小的记录。堆分为大堆和小堆,大堆就是根节点比所有结点要大的完全二叉树,小堆就是跟结点要比所有结点要小的完全二叉树。实现堆排序需要解决一下问题:1.如何将一个无序序列建成一个堆2.去掉堆顶元素,在堆顶元素改变之后,如何调整剩余元素成为一个新的堆。降序需要建小堆,升序建大堆,这里作者的堆排序为降序,建小堆。

2024-07-15 23:27:47 158

原创 C语言数据结构初阶排序(上篇)

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。:数据元素全部放在内存中的排序。:数据元素太多不能同时放在内存中,根据排序过程的要求不断地在内外存之间移动数据的排序。

2024-07-15 21:44:00 1097

原创 c语言二叉树

套娃,大问题分解成多个小问题,直到不用分解。

2024-06-02 22:37:51 1103 1

原创 C语言队列的基本操作

和栈相反,队列(queue)是一种先进先出的线性表,它只允许在表的一段进行插入数据,而在另一端删除数据,这和生活中的排队时一致的,最早进入队列的元素最先离开,而在队列中,允许删除的一端叫队头。

2024-05-12 00:37:06 382

原创 C语言栈的基本操作

栈是一种限定仅在表尾进行插入或删除的线性表,因此,对栈来说,,相应的,。栈中的元素遵循后进先出的顺序(Last In First Out),简称LIFO顺序。这里我们实现栈的基本操作实用的是链表,更方标栈插入和删除数据。

2024-05-11 19:28:21 315 1

原创 C语言经典游戏贪吃蛇

这里我们为了方便使用,用宏来简化一些符号。

2024-05-04 22:54:59 764 1

原创 C语言数据结构空间复杂度

关于算法的存储空间需求,类似算法的时间复杂度,我们采用渐进空间复杂度来作为算法所需存储空间的量度,简称空间复杂度。空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟实践复杂度类似,也使用大O渐进表示法。因此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定。

2024-04-27 16:20:54 548

原创 C语言数据结构时间复杂度

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。即:找到某条基本语句与问题规模N之间的数学表达式,就是算出了该算法的时间复杂度。

2024-04-24 16:47:31 967

原创 c语言数据结构双向链表

为了克服单链表单向性的缺点,可利用双向链表,在双向链表的结点中有两个指针域,一个指向直接后继,另一个指向直接前驱。单链表的全称一般为单向不带头不循环链表,而相对应,双向链表的全称一般为双向带头循环链表。而双向链表的头又称为哨兵位,它本身不含任何信息,它的next指针指向第一个节点,它的prev指针指向最后一个节点。

2024-04-18 19:32:42 1420 2

原创 C语言数据结构单链表

单链表的的特点:用一组任意的储存单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。为了表示每个数据元素与其直接后续数据元素的逻辑关系,对于每个数据元素来说,除了存储其本身的信息外,还需存储一个指示其直接后继的信息,这两部分信息便称为结点。整个链表的存取必须从头指针开始进行,头指针表示链表的第一个结点,同时由于最后一个元素没有直接后继,则单链表中最后一个的节点为空(NULL)。

2024-04-15 20:43:40 665

原创 顺序表通讯录应用

通讯录的应用是建立在顺序表的基础上的,将通讯录的各个信息储存在顺序表的信息中,而通讯录的结构有姓名,性别,年龄,电话,地址。首先我们要创建一个结构体通讯录。

2024-04-11 14:52:07 307

原创 C语言数据结构顺序表的实现

本文介绍了顺序表的概念、类型及其主要操作。顺序表是一种元素在物理位置上连续存储的线性表,实现了随机访问。文中区分了静态顺序表与动态顺序表两种类型,并详细描述了顺序表的初始化、内存判断、元素插入与删除、查找以及销毁等操作流程。特别强调了动态顺序表能有效避免静态顺序表的内存限制问题,提供了完整的C语言实现代码示例,为理解顺序表的操作细节及内存管理提供了实践指导。

2024-04-07 20:28:24 415

空空如也

空空如也

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

TA关注的人

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