
数据结构与算法笔记
笔记整理
kattiekattie
这个作者很懒,什么都没留下…
展开
-
数据结构与算法笔记 : C++
C与C++代码改变头文件引用//C语言的方法:带.h的方式进行include#include<stdio.h>#include<math.h> //C++的方法,直接引用即可#include<cstdio>#include<cmath>输入输出int n; //定义n为整形//C语言的输入输出(需要指定类型,如下指定为整形)scanf("%d",&n);printf("%d",n);//C++语言的输入输出(不需要指定类原创 2020-05-20 17:33:26 · 277 阅读 · 0 评论 -
数据结构与算法笔记(七):队列
一、定义队列(queue)是限定在表的一端进行插入,表的另一端进行删除的数据结构。先进先出。二、队列设计//结点定义typedef struct node{ int data; struct node *next;}node;//队列定义,队首指针和队尾指针typedef struct queue{ node *front; //头指针 node *rear; //尾指针}queue;三、初始化初始化将头尾两个结点指向空,表示是一个空原创 2020-05-18 11:56:15 · 147 阅读 · 0 评论 -
数据结构与算法笔记(六): 栈
一、 定义栈(stack)是限定仅在表的一端进行操作的数据结构。先进后出。栈分为数组栈和链表栈。数组栈使用数组进行功能的模拟,实现较为快速和便利。链表栈使用链表的思路去设计,实现较为麻烦,但是其稳定不易出错;在链表栈中又分为静态链表栈和动态链表栈。静态链表栈给定栈的空间大小,不允许超过存储超过给定数据大小的元素动态链表栈使用的是自动创建空间的方法进行创建,只要符合机器的硬件要求以及编译器的控制,其理论上是极大的。二、栈的设计栈的结构体包括了一个永远指向栈头的指针top和一个原创 2020-05-15 15:34:44 · 260 阅读 · 0 评论 -
数据结构与算法笔记(五): 循环链表
四、循环列表通过将单链表的尾结点指向头结点的单链表称之为循环单链表。结点设计:typedef struct list{ int data; struct list *next;}list;创建list *head=(list*)malloc(sizeof(list));head->next=head;插入顺序插入list *node=(list*)malloc(sizeof(list));node->data=data;list *p原创 2020-05-15 14:33:04 · 176 阅读 · 0 评论 -
数据结构与算法笔记(四): 双向链表
前一篇:数据结构与算法笔记(三): 单链表三、双链表一个完整的双向链表应该是头结点的pre指针指为空,尾结点的next指针指向空,其余结点前后相链。结点构成构造函数typedef struct line{ int data; //data struct line *pre; //pre node struct line *next; //next node}line,*a;//分别表示该结点的前驱(pre),后继(next),以及当前数据原创 2020-05-15 11:44:03 · 298 阅读 · 0 评论 -
数据结构与算法笔记(三): 单链表
一、顺序存储和链式存储顺序存储:数组缺点:需要移动大量的元素,需要消耗大量的时间链式存储:链表特点:不连续存储,使用指针,自适应内存大小优点:解决了数组不方便移动,插入,删除元素的弊端缺点:需要更加大的内存指针回顾1️⃣ *p:存放内存地址的变量(其值是某个变量的地址)2️⃣ p: 指针变量的存储内容3️⃣ &p: 对指针变量p进行取地址二、单链表结点构成:元素 (data) + 指针 (next)元素是存储数据的存储单元,可以是任何数据格式。指针指原创 2020-05-13 18:06:06 · 182 阅读 · 0 评论 -
数据结构与算法笔记(二): C语言中的malloc()和free()
malloc()在堆中申请分配一个大小为size个字节的连续内存空间。若成功分配,则返回一个指向所分配空间起始地址的指针,否则返回空指针(NULL)。int *p; //定义一个指向整形的指针变量p=(int*)malloc(5*sizeof(int)); //申请5个整形大小的内存空间并返回起始地址给pfree()用来释放已分配的内存空间,参数p是待释放的内存空间的首指针free(p); //释放p的内存空间,此时p依旧存在,只不过失去了指向的对象,成了野指针p=NU原创 2020-05-13 16:15:39 · 299 阅读 · 0 评论 -
数据结构与算法笔记(一):基本概念及复杂度
算法(Algorithm)一、算法的特性有穷性(Finiteness)必须能在执行有限个步骤之后终止;确切性(Definiteness)每一步骤必须有确切的定义;输入项(Input)一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;输出项(Output)一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;可行性(Effectiveness)算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计原创 2020-05-13 11:34:00 · 311 阅读 · 0 评论