数据结构
Here�
这个作者很懒,什么都没留下…
展开
-
排序算法
1. 堆排序public class HeapSort { public static void main(String[] args) { int [] tree={2,5,3,1,10,4}; int n=6; // heap(tree,6,0); heap_sort(tree,6); for (int i=0;i<n;i++){ System.out.println(tree[i])原创 2021-05-18 14:22:13 · 73 阅读 · 0 评论 -
B树和B+树
B树的由来:1、首先是查找树,就是为了提高查找效率;2、从二叉查找树,到多路查找树;3、但是会带来不平衡的问题,导致树的深度过深,查询依旧效率低;4、所以要定义为平衡的因此 B树是多路的并且平衡的查找树;B+树:...原创 2021-04-26 10:28:52 · 114 阅读 · 0 评论 -
二叉树
二叉树的概念二叉树的遍历创建结点:定义二叉树:前序遍历:中序遍历:后续遍历:测试:前中后序查找指定节点前序遍历查找中序遍历查找删除节点原创 2021-04-25 19:59:11 · 85 阅读 · 0 评论 -
二叉树的遍历
序指的是根结点在何时被访问NLR(先序)、LNR(中序)、LRN(后续)先序遍历中序遍历把线去掉向下压缩就是中序遍历系列。后续遍历后序遍历序列:452631原创 2020-10-10 09:00:53 · 108 阅读 · 0 评论 -
二叉树的存储结构
二叉树的顺序存储完全二叉树这个是在完全二叉树中,什么是完全二叉树呢?简单就是结点的编号要和满二叉树的编号一一对应。非完全二叉树:补成完全二叉树,然后在补入的结点位置放入0;二叉树的链式存储data存入数据,再声明两个指针...原创 2020-10-09 08:56:05 · 268 阅读 · 0 评论 -
二叉树性质
原创 2020-10-08 09:26:35 · 104 阅读 · 0 评论 -
循环链表
循环单链表:循环双链表原创 2020-09-29 22:22:39 · 105 阅读 · 0 评论 -
双链表
双链表在单链表的结点中增加了一个指向其前驱的prior指针;这句理解为:让s结点指向和p结点相同的位置,注意是让s指向p指的位置!判断p结点是否有后继结点,*如果有*则p结点的后继结点的前项指针指向s,然后s结点的前项指针指向p结点,p结点的后继指针指向s结点;如果没有,不需要就不用讲p结点的后继结点的前项指针指向s,因为没有后继结点呀。。。这时时候s指向的是null,只需要把s和p连接起来就行,让s结点的前驱指针指向p结点,p结点的后继指针指向s结点!双链表的删除:删除p结点.原创 2020-09-29 22:03:45 · 511 阅读 · 0 评论 -
单链表的建立
初始化一个单链表,分配一个头结点;尾插法建立单链表1、先创建两个指针s、r,然后malloc开辟一个节点,让s指向这个结点2、把输入的Data给s,然后让r的next指针指向s3、最后让r指向s结点4、while循环里面其实是指定节点的后插操作5、永远保证r指针指向最后一个节点头插法建立单链表其实就是在头结点后面后插元素。。。。。每次都是在头结点后面,后插。...原创 2020-09-29 09:18:18 · 157 阅读 · 0 评论 -
单链表插入和删除
1、先开辟一个新的结点:s,s其实代表的也就是这个结点的地址2.新结点中赋值3.把上一个结点地址赋给新结点,也是让新结点先指向下一个结点4.最后把新结点的地址赋给上一个结点,也就是让上一个结点指向新结点while()里面主要是找到第i-1个结点j:当前p指向第几个结点指定元素的后插操作前插操作有两种方法:第一种是:传入头指针,然后去遍历;第二种是:先在p后面后插一个节点s,然后去交换data;p前继结点找不到,还是老办法,找后继结点q,然后pq交换数据,然后把后继结q点的地址给p.原创 2020-09-28 21:56:17 · 713 阅读 · 0 评论 -
单链表的定义
返回一个节点一般用LNode *Linklist强调是个单链表;要表示一个单链表时,只需要声明一个头指针L,指向单链表的第一个结点。L是一个头指针,malloc开辟空间扣返回的是地址,然后赋值给L,也就是说头指针指向了新开辟的结点;...原创 2020-09-28 20:55:30 · 218 阅读 · 0 评论 -
顺序表的按位查找
获取第i个位序的元素的值,在数组中的位置应该是下表i-1;ElemType代表线性表的元素类型;data指向的是malloc分配的内存空间的首地址;malloc返回的要与数据元素的类型保持一致,(int)强制转换,一个int为4B;在表L中查找给定值的元素的位序...原创 2020-09-28 09:13:47 · 1027 阅读 · 0 评论 -
顺序表动态内存分配
这里malloc申请的是另外一块内存空间,然后把首地址给指针变量data,就是让data指针指向这个新的内存空间for循环的作用是把,原来的数据,复制到新的空间下,为什么是p[i],因为p最开始已经指向了data最后增加顺序表的长度,释放原来的内存空间!由于p是局部变量,所以函数结束后,也就不存在了。。。。data指向了新增加长度的数组。。。。...原创 2020-09-27 09:39:16 · 331 阅读 · 0 评论