数据结构入门
UDK_KL.
这个作者很懒,什么都没留下…
展开
-
数据结构入门(十四)——非线性结构(2)——树的存储
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言树的存储二叉树的存储:连续存储一般树存储森林的存储树的存储二叉树的存储:连续存储转化为完全二叉树 优点:查找某个节点的父节点和子节点速度很快 缺点:耗费内存链式存储一般树存储转化为完全二叉树森林的存储转化为完全二叉树...原创 2021-11-03 15:32:28 · 171 阅读 · 0 评论 -
数据结构入门(十三)——非线性结构(1)——树的相关概念
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言什么是树概念术语树的分类什么是树概念有且只有一个称为根的节点有若干个互不相交的子树,这些子树本身也是一棵树树由节点和节点之间的连接(指针)组成的每个节点只有一个父节点但是可以有多个子节点如果该节点只没有父节点则此节点成为根节点术语节点们(相对概念): 节点 父节点 子节点 子孙 堂兄弟深度: 从根节点到最底层节点的层数叶子节点: 没有子节点的节点非终端节点:有子节点的节点度数:子节点的个数树的原创 2021-01-29 16:08:58 · 155 阅读 · 0 评论 -
数据结构入门(十二)——递归(2)——汉诺塔问题
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言题干题干Description 汉诺塔是源自印度神话的玩具。 神创造世界的是哦胡制造了三根柱子,在其中一根柱子上从上至下按大小顺序依次摞有64片黄金圆盘。 神命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上,要求小圆盘上面不能放大圆盘且一次只能移动一个圆盘。Input 输入金片的个数n。这里的n<=10。Output 输出搬动金片的全过程。格式见样例。SampleInput 2原创 2021-01-28 17:12:07 · 1164 阅读 · 4 评论 -
数据结构入门(十一)——递归(1)
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言递归什么是递归:递归什么是递归:套娃#include<stdio.h>void AAA();void BBB();void CCC();int main(){ AAA(); return 0;}void AAA(){ printf("AAA\n"); BBB(); printf("111\n");}void BBB(){ printf(原创 2021-01-28 15:36:14 · 117 阅读 · 0 评论 -
数据结构入门(九)——线性结构(4)——栈及栈操作
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言原创 2021-01-27 19:36:12 · 151 阅读 · 3 评论 -
数据结构入门(八)——线性结构(3)——链表的插入、删除、排序(重要)
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正本文中讲述的大部分链表操作均以单独函数形式表示,仅方便演示,具体使用请结合实际情况目录前言上一篇文章中创建好的链表判断链表是否为空计算链表的长度向链表中插入元素删除链表中的元素链表排序(;´д`)ゞ上一篇文章中创建好的链表int main(){ int n; scanf("%d",&n); struct NODE *head = NULL; head =原创 2021-01-27 10:24:22 · 175 阅读 · 2 评论 -
数据结构入门(七)——线性结构(2)——链表的代码实现与操作(重要)
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言#include<stdio.h>#include<stdlib.h>struct NODE{ int data; //数据域 struct NODE *Next; //指针域};struct NODE * creat(int n); //创建链表函数void display(struct NODE *head); //显示链表内原创 2021-01-26 16:03:32 · 134 阅读 · 0 评论 -
数据结构入门(六)——线性结构(1)——链表相关概念
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言什么是线性结构bool类型typedef函数链表离散存储(链表)何为链表链表的分类链表的节点(单向)链表的代码实现什么是线性结构所有的节点连在一根“线”上一个逻辑结构可以用于多种存储结构,线性结构中的线性表可以采用连续存储存储(数组) 和 离散存储(链表)bool类型判断逻辑“真”“假”typedef函数#include<stdio.h>typedef int abc; //为固定句式再起原创 2021-01-25 20:39:15 · 187 阅读 · 2 评论 -
数据结构入门(五)——预备知识(4)——内存的跨函数使用
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言静态内存(局部变量)动态内存静态内存(局部变量)主调函数调用被调函数时,被调函数中申请分配的静态内存仅在被调函数运行时生效,被调函数运行结束之后该内存立即被释放#include<stdio.h>int f(int **p);int main(){ int *p; //此时仅声明了一个int *类型的指针变量,但是并没有对该变量赋值,此时该指针非法 f(&p); //调用原创 2021-01-25 11:36:40 · 108 阅读 · 0 评论 -
数据结构入门(四)——预备知识(3)——动态内存分配与释放
前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言为什么要动态分配内存内存分配与释放的概念sizeof()函数malloc()函数free()函数为什么要动态分配内存以数组为例,定义一个含有5个元素的数组的时候,系统会一次分配给程序5个元素的内存空间,但是实际使用不一定会用到全部的5个元素的空间,因此会造成空间浪费。以数组为例,除非关闭并修改程序否则不能改变输入数据的最大组数即不能做到随用随申请,随用随释放,动态内存分配能够解决以上的问题动态内存:程序运行时内存不够可以原创 2021-01-25 00:02:10 · 493 阅读 · 0 评论 -
数据结构入门(三)——预备知识(2)——结构体
结构体前言本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正目录前言结构体的优势什么是结构体如何使用结构体结构体的函数间传递结构体的优势能够表示普通的基本类型变量无法满足要求的复杂数据什么是结构体结构体是用户根据实际需要自己定义的符合数据类型如何使用结构体#include<stdio.h>struct Student{ int id; //用户自定义变量 char name[20]; //用户自定义变量 int age;原创 2021-01-24 15:44:19 · 170 阅读 · 0 评论 -
数据结构入门——索引页
数据结构入门文章目录数据结构入门前言一、什么是数据结构衡量算法的标准二、1.引入库2.读入数据总结前言本文基于郝斌的《数据结构入门》教学视频编写本文类似于笔记的形似,如有错误欢迎指正一、什么是数据结构数据结构是如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能而执行的相应操作(算法)数据结构的学习并不会对编程水平的提高有显著影响,但是了解了数据结构能够提升自己的思维层次,对于以后解决问题有很大帮助衡量算法的标准时间原创 2021-01-24 11:59:01 · 714 阅读 · 2 评论 -
数据结构入门(二)——预备知识(1)——指针
二、数据结构预备知识(1)——指针目录指针的重要性指针相关定义指针与函数数组与指针数组元素与内存地址的关系数组与指针的关系数组、指针、函数指针的重要性指针是C语言的灵魂指针相关定义地址:是内存单元的编号(16进制数),是从0开始的非负整数,其范围(32位CPU)为0——FFFFFFFFH(0——4GB-1)1指针:指针就是地址,地址就是指针指针变量:存放内存地址的变量,均占4个字节的空间指针的本质:指针是一个操作受限的非负整数(不能加、乘、除,仅能在某些情况下相减)内存分配:原创 2021-01-24 11:57:28 · 249 阅读 · 2 评论