c
Amberstone1
头像本人
展开
-
链式队列和两个栈如何实现一个队列
给头部指针新添加一个指针域指向尾部节点,这样头尾都可以在O(1)时间复杂度里访问。用这样的代码改造单链表的结构体设计 会使得下面都出现一个新添加的指针域 如图所示。(只在头结点出现即可)头文件 链式队列 lqueue.h#pragma once typedef int ELEM_TYPE;typedef struct Node{ ELEM_TYPE data;//数据域 struct Node *next;//指针域}Node, *PNode;//我们对头结点重新设计其结..原创 2021-08-14 12:21:23 · 138 阅读 · 0 评论 -
基础数据结构 循环队列
想办法让队尾队头的时间复杂度都为O(1)循环队列 头文件 queue.h#pragma oncetypedef int ELEM_TYPE;#define MAXQSIZE 100typedef struct Queue{ ELEM_TYPE *base;//数据域 指向malloc申请来的动态内存 int front;//头指针,当队列不空的时间,保存是队头,指向的第一个元素的下标 int rear;//尾指针,当队列不空的时间,保存的是队尾,指向的下一个元素入队的下标 .原创 2021-08-12 18:20:41 · 240 阅读 · 0 评论 -
基本数据结构 栈 队列
栈栈:栈是限定仅在 “表尾” 进行插入和删除操作的“线性表"。表尾端被称为栈顶 另一端被称为栈底。没有数据称为空栈因为在线性表的表尾不用挪动数据,时间复杂度低为O(1)。如果是“链表”只能在“表头”,因为链表表头的时间复杂度为O(1)。栈:弹夹;先压入的子弹凡反而最后被击发。先进后出 或 后进先出 的数据结构。队列:队列:"先进先出” 的数据结构,仅在一端进行插入操作 在另一端进行删除操作的线性表(受到限制的线性表)没有数据称为空队列。分别用顺序表和链表实现一下。队列:排队 前面的先被服原创 2021-07-29 17:06:29 · 101 阅读 · 0 评论 -
基础数据结构 双向循环链表以及单链表习题
双向循环链表.cpp#include <stdio.h>#include <malloc.h>#include <assert.h>#include "dclist.h"/*作业1:补全双向循环链表代码作业2:单链表习题*///循环链表可执行的操作:(增删改查)//初始化void Init_dclist(PDClist pl){ assert(pl != NULL); if(NULL == pl) return; //pl->.原创 2021-07-27 09:56:23 · 272 阅读 · 0 评论 -
基础数据结构 循环链表
循环链表 clist.cpp#include <stdio.h>#include <stdlib.h>#include <assert.h>#include "clist.h"//作业:补全代码 to do//初始化void Init_clist(PClist pl){ assert(pl != NULL); if(pl == NULL) return; //pl->data; 头结点的数据域不使用 pl->next = pl;原创 2021-07-24 09:22:02 · 78 阅读 · 0 评论 -
基础数据结构 双向链表
双向链表 .h部分的编写#pragma once//为什么要有双向链表? 因为单链表有自身局限性(只能向后跑,不能向前跑),所以当我们需要向前跑的时候,所以就有了双向链表//双向链表是个啥? 和单链表相比,多了一个直接前驱指针//结构体定义typedef int ELEMTYPE;typedef struct DNode{ int data;//数据域 struct DNode *next;//直接后继指针 struct DNode *prior;//新添加的:直接前驱指针}DNo原创 2021-07-22 11:15:03 · 88 阅读 · 0 评论 -
C语言基础数据与结构 第二 三节课 不定顺序表 单链表 双链表
不定长顺序表的编写:list.h部分#pragma once typedef int ELEMTYPE;typedef struct Node{ ELEMTYPE data;//数据域 保存其数据本身 struct Node* next;//指针域 指向下一个数据节点的地址}Node, *PNode;//增删改查//初始化void Init_list(Node * plist);//Node * == PNode//头插bool Insert_head(PNode p原创 2021-07-20 13:57:54 · 157 阅读 · 0 评论 -
C语言文件(File)7月12号课+7月19日课
File(1):文件的定义与类型(2)流的概念和分类(3)二进制文件和文本文件的区别:(4)文件的读写atoi:字符串转整型 ;itoa:整型转换成字符串。原创 2021-07-19 19:39:21 · 62 阅读 · 0 评论 -
基础数据结构第一节课 定义 基本结构 线性表 时间,空间复杂度 7月15日
基础数据结构和算法的内容(1)数据结构(定义):是相互之间存在一种或者多种特定关系的数据元素的集合。(2)要学习的内容:一定掌握基础数据结构与算法;高级数据结构可以拉开与别人的差距。(3)逻辑结构:指数据对象中数据元素之间的关系。物理结构:指数据的逻辑结构在计算机中的存储形式。(4)线性表: 顺序表 和 链表。举例:编写定长顺序表 并实现下图的功能:首先在.h文件里,放函数的声明以及结构体的定义。.h文件 //放函数的声明以及结构体的定义 .cpp文件来实现函数#pragma原创 2021-07-16 18:36:12 · 97 阅读 · 0 评论 -
链表 List 6 8日 13min处
List的基本结构:原创 2021-07-15 17:30:23 · 54 阅读 · 0 评论 -
总结取余 取模的区别 C语言标准头文件
取余 取模的用法原创 2021-07-12 16:13:35 · 1300 阅读 · 0 评论 -
c语言第一次课总结(编译链接过程,二进制计算)
C语言第一次课(3月31日)对c语言来说找工作最重要的是对源代码的剖析及开元框架。``c语言是强调类型的语言(c99标准)即类型不变。不可以将数学和编程混在一起,因为有类型的转换。1.编译链接过程图以及字符类型char;short;int;long int;long long;//整形float;double;long double;//浮点类型void//无类型``2.二进制的计算【200】10=【?】2=【?】16=【?】8解:先列写数字200-128=原创 2021-04-10 14:16:53 · 89 阅读 · 0 评论 -
C语言第19次课(动态内存管理的原因 malloc calloc recalloc alloc 堆区栈区的区别 动态申请二维数组)
C语言第19次课原创 2021-06-03 13:22:19 · 243 阅读 · 0 评论 -
C第十八次课(结构体与数组 结构体的大小 联合体 哑元 机器存放ip 字符串与整型转换)
C语言第十八次课(1)续 结构体与数组编写代码 要求打印学生数据:编写为:用 . 访问时用指向符-> 时:(2)结构体的大小:结构体的对齐方式:听课到 40:46原创 2021-05-27 13:26:13 · 192 阅读 · 1 评论 -
C语言第十七次课 (struct 结构体的定义 分配空间 嵌套 不完整类型 指向 引用 )
C语言第十七次课 (结构体)(1)结构体的定义//注意是设计结构体而不是定义结构体, 因为定义变量要开辟空间, 而设计结构体不会给其开辟空间, 设计结构体时 “ ;” 分号是不可或缺的。//结构体不占用存储空间 但由结构体定义的变量占存储空间。好比 int a=10可以而int=10不行,结构体同理。(2)定义结构体时如何分配空间://对结构体变量的初始化使用花括号[ ],对数组也是[ ],两者的区别是:数组的每一个元素所占字节个数一样,类型也一样; 结构体每一个属性所占的字节个数可原创 2021-05-20 18:02:17 · 511 阅读 · 0 评论 -
C语言第十六次课(扫雷,结构体)
C语言第十六次课/img-blog.csdnimg.cn/20210515103456354.png#pic_center)原创 2021-05-19 17:33:16 · 170 阅读 · 1 评论 -
C语言第15次课(回顾一维数组 二维数组;分块查询的编写;位运算 与 或等 左移右移 )
C语言第是15次课(1):回顾以一维数组与指针:(2)二维数组由一维数组构成:原创 2021-05-13 11:58:57 · 170 阅读 · 0 评论