数据结构
ShawnWang1994
用心,慢慢来!
展开
-
数据结构笔记3线性表(上)(《大话数据结构》学习笔记)
线性表:零个或多个数据元素的有限序列 。【1】线性表定义线性表,从名字上你就能感觉到,是具有像线一样的性质的表。在广场上,有很多人分散在各处,当中有些是小朋友,可也有很多大人,甚至还有不少宠物,这些小朋友的数据对于整个广场人群来说,不能算是线性表的结构 。 但如果一个班级的小朋友,一个跟着一个排着队,有一个打头,有一个收尾,当中的小朋友每一个都知道他前面一个是谁,他后面一个是谁,这样如同有一...原创 2019-04-04 14:19:33 · 307 阅读 · 2 评论 -
链表代码(完整)
#include<stdio.h>#include<malloc.h>#include<stdbool.h>//定义链表typedef struct ListNode{ int val; struct ListNode* next;}ListNode;//链表初始化ListNode* CreateList(){ ListNode* Hea...原创 2019-08-19 14:23:48 · 11306 阅读 · 3 评论 -
树代码(递归)
#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct Btreenode{ char data; struct Btreenode *lchlid; struct Btreenode *rchlid;}BiNode,*BiTree;//递归方法创建树BiTree...原创 2019-07-22 10:16:16 · 818 阅读 · 0 评论 -
树代码非递归(转)
先序遍历void unpre_order(btree_pnode t) //采用非递归方法先序遍历{ linklist top;//top为指向栈顶结点的指针 top=stack_create();//初始化链式栈 while(t!=NULL || !(stack_empty(top))) { if(t!=NULL) { printf...转载 2019-07-23 16:50:15 · 132 阅读 · 0 评论 -
链表头插法和尾插法
尾插法创建单链表:void creatlinkistR(LNode *&head){ head=(LNode*)malloc(sizeof(LNode));//为头结点开辟空间 head->next=NULL; LNode *s=NULL,*r=head; int i,n; scanf("%d",&n); for(i=...原创 2019-07-11 19:50:45 · 562 阅读 · 1 评论 -
串代码
#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>typedef struct{ char *ch; int length;}Str;//获取长度int GetStrLength(Str* str){ return str->le...原创 2019-07-15 23:50:03 · 681 阅读 · 0 评论 -
链队列代码
#include<stdio.h>#include<stdlib.h>typedef int data_t;typedef struct QNode{ data_t data; struct QNode *next;}QNode,*QueuePtr;typedef struct stQueue{ QNode *front; QNode *rear;}L...原创 2019-07-15 20:53:53 · 510 阅读 · 0 评论 -
队列代码
#include<stdio.h>#include<stdlib.h>#define QUEEN_SIZE 50typedef struct QNode{ int data[QUEEN_SIZE]; int front; int rear;}Queue;//初始化队列Queue *InitQueue(){ Queue *q=(Queue*)malloc...原创 2019-07-15 20:52:12 · 3231 阅读 · 1 评论 -
栈代码
顺序栈#include <stdio.h>#include <stdlib.h>#define MAXSIZE 20#define OK 1#define ERROR 0 typedef int data_t;typedef struct{data_t data[MAXSIZE];int top;}SqStack;...转载 2019-07-14 13:52:43 · 579 阅读 · 2 评论 -
数据结构笔记10树(中)(《大话数据结构》学习笔记)
【1】二叉树的定义现在我们来做个游戏,我在纸上 已经写好了 一个 100 以内的正整数数字,请大家想办法猜出我写的是哪一个?注意你们猪的数字不能超过 7 个 , 我的回答只会告诉你是"大了"或"小了。这个游戏在一些电视节目中,猜测一些商品的定价时常会使用。我看到过有些人是一点一点的数字累加的,比如 5 、 10 、 15 、 20 这样猜,这样的猜数策略大低级了 ,显然是没有学过数据结构和算法...原创 2019-05-09 14:09:38 · 313 阅读 · 0 评论 -
数据结构笔记9树(上)(《大话数据结构》学习笔记)
【1】树的定义树( Tree )是 n(n大于等于0) 个结点的有限集 。 n=0 时称为空树 。 在任意一棵非空树中: ( 1 )有且仅有-个特定的称为根 ( Root )的结点: (2) 当 n>1 时,其余结点可分为 m (m>O) 个互不相变的有限集 T1、T2、…、Tm,其中每一个集合本身又是一棵树,并且称为根的子树( SubTree ).树T1和子树 T2 就是根结点...原创 2019-04-16 15:40:24 · 220 阅读 · 1 评论 -
数据结构笔记8串(《大话数据结构》学习笔记)
【1】串的定义串(string)是由零个或多个字符组成的有限序列,又名叫字符串。一般记为 s= " a1a2… … .an " ( n>0), 其中, s 是串的名称,用双引号(有些书中也用单引号)括起来的字符序列是串的值,注意单引号不属于串的内容 。 ai可以是字母 、 数字或其他字符 , i 就是该字符在串中的位置。 串中的字符数目 n 称为串的长度, 定义中谈到"有限"是指长度 n...原创 2019-04-16 11:41:16 · 314 阅读 · 2 评论 -
数据结构笔记7队列(《大话数据结构》学习笔记)
【1】队列的定义你们在用电脑时有没有经历过,机器有时会处于疑似死机的状态,鼠标点什么似乎都没用,双击任何快捷方式都不动弹 。就当你失去耐心,打算reset时。突然它像酒醒了 一样,把你刚才点击的所有操作全部都按顺序执行了一遍 。这其实是因为操作系统中的多个程序因需要通过一个通道输出,而按先后次序排队等待造成的。再比如像移动、联通、电信等客服电话,客服人员与客户相比总是少数,在所有的客服人员都...原创 2019-04-12 15:47:23 · 379 阅读 · 2 评论 -
数据结构笔记2算法(《大话数据结构》学习笔记)
算 法:算法是解决特定问题求解步骤的描述 , 在计算机中表现为指令的有限序列 , 并且每条指令表示一个或多个操作 。【1】引导现在如果要求你写一个求 1+2+3+ … + 100 结果的程序,你应该怎么写呢?大多数人会马上写出下面的 C 语言代码(或者其他语言的代码) :这是最简单的计算机程序之一。问题在于,你的第一直觉是这样写的,但这样是不是真的很好?是不是最高放?此时,我不得不...原创 2019-04-03 11:17:10 · 294 阅读 · 1 评论 -
数据结构笔记4线性表(中)(《大话数据结构》学习笔记)
【1】顺序存储结构不足的解决办法思路:我们反正也是要让相邻元素间留有足够余地,那干脆所有的元素都不要考虑相邻位置了,哪有空位就到哪里,而只是让每个元素知道包下 一个元素的位置在哪里,这样,我们可以在第一个元素时,就知道第二个元素的位置(内存地址) ,而找到它 ; 在第二个元素时,再找到第三个元素的位置(内存地址)。这样所有的元素我们就都可以通过遍历而找到。【2】线性表链式存储结构定义线性表...原创 2019-04-08 11:07:25 · 296 阅读 · 2 评论 -
数据结构笔记1绪论(《大话数据结构》学习笔记)
【1】数据结构起源早期人们都把计算机理解为数值计算工具,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体间题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件 。可现实中 , 我们更多的不是解决数值计算的问题,而是需要一些更科学有效的 手段(比如表、树和图等数据结构)的帮助,才能更好地处理问题 。 所以数据结构是一门研究非数值计算的程...原创 2019-04-02 14:51:28 · 520 阅读 · 0 评论 -
数据结构笔记6栈(《大话数据结构》学习笔记)
栈是限定仅能在表尾进行插入和删除操作的线性表 。【1】栈的定义就是类似弹夹中的子弹一样先进去,却要后出来,而后进的,反而可以先出来的数据结构一一栈。栈(stack )是限定仅在表尾进行插入和删除操作的线性表 。我们把允许插入和删除的 一端称为栈顶 ( top) ,另一端称为栈低(bottom ) ,不含任何数据元素的栈称为空栈。栈又称为后进先出 ( Last InFilrst Out)的...原创 2019-04-10 14:51:05 · 193 阅读 · 1 评论 -
数据结构笔记5线性表(下)(《大话数据结构》学习笔记)
【1】静态链表首先我们让数组的元素都是由两个数据域组成, date和 cur 。也就是说,数组的每个下标都对应一个data和一个 cur。数据域data ,用来存放数据元素, 也就是通常我们要处理的数据;而游标cur相当于单链表中的next 指针,存放该元素的后继在数组中的下标。我们把这种用数组描述的链表叫做静态链表 ,这种描述方法还有起名叫做游标实现法。为了我们方便插入数据,我们通常会把数...原创 2019-04-10 11:10:34 · 180 阅读 · 0 评论 -
二叉树代码
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<error.h>typedef struct TreeNode{ char data; struct TreeNode *lchild,*rchild;}TreeNode,*Tree;//构建二叉树Tree C...原创 2019-08-23 13:51:01 · 214 阅读 · 0 评论