![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Evekkan
这个作者很懒,什么都没留下…
展开
-
2021-09-14
数据结构学习(C语言)-递归(汉诺塔实例)一、预备知识1、什么是递归递归就是一个函数自己可以直接或间接调用自己。2、递归的条件1.递归必须得有一个明确的终止条件;2.该函数所处理的数据规模必须在递减;3.这个转化必须是可解的。3、递归和循环的比较递归:易于理解,速度慢,存储空间大;循环:不易理解,速度快,存储空间小。二、递归实现汉诺塔1、什么是汉诺塔题目背景:相传上帝创造世界的时候做了三个金刚石柱子,在一根柱子上从上往下按大小(大小都不一样)顺序摞着64片黄金圆盘。上原创 2021-09-14 11:12:04 · 98 阅读 · 0 评论 -
2021-09-10
数据结构学习(C语言)-循环队列为什么要用循环队列?先看下面的图我们可以发现,不论我们是进行进队操作还是出队操作,用于标记位置的两个参数front(队首)和rear(队尾的下一个位置)在图中都是上移的。这也就意味着经过不断的出队操作,标记front下面的已申请空间越来越多,而且始终不会再次得到利用,从而造成空间的浪费。但是如果我们使用循环队列就可以很好地解决这一问题。循环队列基本操作的实例代码如下:#include<stdio.h>#include<ma原创 2021-09-10 20:58:12 · 74 阅读 · 0 评论 -
2021-09-08
数据结构学习(C语言)-单链队列单链队列通过单链表的形式实现“先进先出”的队列存储结构,先进队列的元素先出,即要出队(删除)只能从此时队列中最先进入的那个元素开始,同样进队(添加元素)新进入的元素必须排在此时队列中的最后一个元素的后面。单链队列操作实例及代码代码:#include<stdio.h>#include<stdlib.h>typedef struct NODE { int data; struct NODE * pNext;}node, *pNode原创 2021-09-08 21:40:51 · 72 阅读 · 0 评论 -
2021-09-07
数据结构学习(C语言)-栈的基本操作1、栈的定义栈就是一种可以实现“先进后出”的存储结构。换句话说,栈的存储结构就像是向一个箱子里放书,后放进去的只能放在前面的上面,而且后放进去的可以直接拿出来,而先放进去的就必须等否放进去的拿出后才能拿出来。2、栈的分类栈主要分为静态栈和动态栈两种。3、栈的核心算法栈最核心的两步操作是压栈(进栈)和出栈。4、栈的应用栈的主要应用有函数调用,中断,表达式求值(计算器实现),内存分配,缓冲处理,迷宫等。5、栈的基本操作代码#include&原创 2021-09-07 21:10:08 · 41 阅读 · 0 评论 -
2021-08-23
数据结构学习(C语言)–单链表的基本操作#include<stdio.h>#include<malloc.h>//结构体声明typedef struct Node { int data; //数据域 struct Node * pNext; //指针域}*pNode, Node;//函数声明pNode createList(); //创建链表,返回头结点指针void ergodicList(pNode);//遍历链表中数据bool isEmpty(pN原创 2021-08-23 23:00:23 · 101 阅读 · 0 评论 -
2021-08-24
数据结构学习(C语言)顺序表的基本操作#include<stdio.h>#include<malloc.h>#include<stdlib.h>//定义结构体struct Sqlist { int len;//定义数组最大长度 int eNum;//定义有效数据个数 int * pdata;//数组的第一个元素的地址};//函数声明部分void initSqList(struct Sqlist * psqlist,int length);//申请空间原创 2021-08-24 07:57:59 · 91 阅读 · 0 评论