郝斌老师数据结构学习笔记
数据结构学习笔记
程序喵阿呆
道济天下,智周万物
展开
-
郝斌老师数据结构10(递归)
专题:递归【这对你的编码能力是个质的飞跃,如果你想成为一个很厉害的程序员,数据结构是必须要掌握的,因为计算机专业的本科生也达不到这水平!计算机特别适合用递归的思想来解决问题,但是我们人类用递归的思想来考虑问题就会感到十分困扰,这也是很多学过递归的人一直都搞不明白的地方!那是不是递归可以随便写,当然不是,有些同学一用递归程序就死翘翘了。递归的思想是软件思想的基本思想之一,在树和图论上面,几乎全是用递归来实现的,最简单,像求阶乘这种没有明确执行次数的问题,都是用递归来解决】定义: ...原创 2020-07-02 14:38:10 · 208 阅读 · 0 评论 -
郝斌老师数据结构9(循环队列)
队列定义:一种可以实现先进先出的存储结构分类:链式队列:链表实现静态队列:数组实现,静态队列通常必须是循环队列,减少内存浪费。链式队列:与链表类同,实现略循环队列:循环队列需要两个参数来确定: 1.front(队头) 2.rear(队尾)循环队列的几个定义解释: 1.队列初始化:front和rear均为0 2.队列非空:front指向队列第一个元素下标,rear指向队列最后一个元素的下一个元素下标 ...原创 2020-06-30 20:01:03 · 168 阅读 · 0 评论 -
郝斌数据结构8(两栈共享空间-参考大话数据结构)
数组有两个端点,两个栈有两个栈底,让一个栈的栈底在数组的开始端,即下标为0的地方;让另外一个在栈底在数组的末端,即下标为n-1的地方,如果两个栈增加元素,就是两端点向中间的延伸。#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#define Maxsize 100typedef struct SeqStack{ int data[Maxsize]; int top1; ..原创 2020-06-28 10:46:35 · 128 阅读 · 0 评论 -
郝斌数据结构6(双向链表)
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<stdbool.h>typedef struct Node{ int data; struct Node * prior; struct Node * pnext;}NODE, * PNODE;PNODE creat_list(){ int len = 0; int i = 0;原创 2020-06-23 14:32:18 · 118 阅读 · 0 评论 -
郝斌数据结构5(静态链表)
最近在看视屏学习郝斌老师的数据结构,但是视频中只是讲了一部分数据结构的内容,静态链表没有讲,我参考大话数据对静态链表进行尝试。静态链表其实是为了给没有指针的高级语言设计的一种实现单链表能力的方法。把静态链表整体看做是一个结构体数组,这个结构体中有两个数据域组成,data(数据)和cur(游标),数组的每一个下标都对应一个数据域和一个游标,数据域data存放数据,cur相当于单链表中的next指针,存放该节点的后继节点的坐标。为了方便插入数据,一般在把数组建得较大,以便有一些空闲空间在插入时不溢出。静原创 2020-06-22 16:57:57 · 92 阅读 · 0 评论 -
郝斌数据结构7(栈)
#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#include<malloc.h>typedef struct Node{ int data; struct Node *pNext;}NODE, *PNODE;typedef struct Stack{ PNODE pTop; PNODE pBottom;}STACK, *PSTACK;voi原创 2020-06-17 11:42:21 · 94 阅读 · 0 评论 -
郝斌数据结构4(链表程序)
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct Node{ int data; struct Node * pnext;}NODE, * PNODE;PNODE creat_list(){ int len = 0; printf("请输入您需要创建的链表长度:len = "); scanf("%d",&len);原创 2020-06-15 11:12:59 · 202 阅读 · 0 评论 -
郝斌数据结构2(连续存储-数组)
线性结构特点:把所有节点用一条直线串起来连续存储什么是数组:元素类型相同,大小相等数组的优缺点:优点:存取速度快缺点:插入删除元素很慢例子(我自己改变一部分,但大致结构没有变)#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<stdbool.h>struct Arr{ int *pBase;//数组的首地址 int cnt;//数组内有效字节数原创 2020-06-09 20:38:41 · 175 阅读 · 0 评论 -
郝斌数据结构3(typedef、链表基础知识)
typedef使用#include<stdio.h>typedef struct Student{ int sid; char name[100]; char sex;}* PST, ST;int main(void){ ST st; //struct Student st; PST pst = &st; //struct Student *pst = &st; pst->sid = 99; printf("%d\n",pst->sid);原创 2020-06-15 11:11:53 · 241 阅读 · 0 评论 -
郝斌数据结构1(预备知识、指针、跨函数使用内存)
概述数据结构的定义我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对元素进行排序等)而执行的相应操作,这个相应的操作也叫算法。数据结构 = 个体的存储 + 个体的关系存储算法 = 对存储数据的操作算法定义通俗的说算法是解题的方法和步骤衡量算法的标准:时间复杂度:程序大概要执行的次数空间复杂度:程序执行过程中大概所占用的最大内存空间难易程度 :易用易懂,避免过原创 2020-06-02 20:55:15 · 93 阅读 · 0 评论