
数据结构与算法学习
攻城lion
这个作者很懒,什么都没留下…
展开
-
查找——3、平衡二叉树
1、AVL树(平衡二叉树)其定义为:平衡二叉树或者是空树,或者是满足下列性质的二叉树。⑴:左子树和右子树深度之差的绝对值不大于1;⑵:左子树和右子树也都是平衡二叉树。平衡因子(Balance Factor) :二叉树上结点的左子树的深度减去其右子树深度称为该结点的平衡因子。因此,平衡二叉树上每个结点的平衡因子只可能是-1、0和1,否则,只要有一个结点的平衡因子的绝对值大于1, 该二叉...原创 2020-02-26 10:59:06 · 221 阅读 · 0 评论 -
查找——2、二叉树排序树
1、二叉排序树(BST)的定义二叉排序树(Binary Sort Tree或Binary Search Tree) BST的定义为:二叉排序树或者是空树,或者是满足下列性质的二叉树。(1) :若左子树不为空,则左子树上所有结点的值(关键字)都小于根结点的值;(2) :若右子树不为空,则右子树上所有结点的值(关键字)都大于根结点的值;(3) :左、右子树都分别是二叉排序树。结论:若按中序...原创 2020-02-26 10:30:29 · 368 阅读 · 0 评论 -
查找的几个基本概念
1、查找有两种基本形式:静态查找和动态查找静态查找:在查找时只对数据元素进行查询或检索,查找表称为静态查找表。动态查找:在实施查找的同时,插入查找表中不存在的记录,或从查找表中删除已存在的某个记录,查找表称为动态查找表。根据存储结构的不同,查找方法可分为三大类:① 顺序表和链表的查找:将给定的K值与查找表中记录的关键字逐个进行比较, 找到要查找的记录;② 散列表的查找:根据给定的K值直接...原创 2020-02-26 09:56:59 · 1144 阅读 · 0 评论 -
查找——1、折半查找法
1、折半查找又称为二分查找,是一种效率较高的查找方法。2、折半查找的前提条件:查找表中的所有记录是按关键字有序(升序或降序) 。查找过程中,先确定待查找记录在表中的范围,然后逐步缩小范围(每次将待查记录所在区间缩小一半),直到找到或找不到记录为止。3、查找的算法可以简述为以下:用Low、High和Mid表示待查找区间的下界、上界和中间位置指针,初值为Low=1,High=n。⑴ 取中间...原创 2020-02-26 09:37:03 · 5778 阅读 · 0 评论 -
3、串的模式匹配算法(普通和KMP)的代码实现
#include <stdio.h>#include <stdlib.h>//串的定长顺序存储结构#define MAX_STRLEN 256typedef struct StringType{ char str[MAX_STRLEN]; int length;}StringType;//Brute-Force模式匹配算法/* 采用顺序存储方式存储主...原创 2020-02-21 17:58:46 · 358 阅读 · 0 评论 -
2、串的顺序存储结构的练习代码
#include <stdio.h>#include <stdlib.h>//串的定长顺序存储结构#define MAX_STRLEN 256typedef struct StringType{ char str[MAX_STRLEN]; int length;}StringType;//求字符串长度int StringLen(StringType ...原创 2020-02-21 17:53:41 · 604 阅读 · 0 评论 -
1、串的基本概念与存储结构
1、串的基本概念 串(字符串):是零个或多个字符组成的有限序列。记作: S=“a1a2a3…”,其中S是串名,ai(1≦i≦n)是单个,可以是字母、数字或其它字符。 串值:双引号括起来的字符序列是串值。 串长:串中所包含的字符个数称为该串的长度。 空串(空的字符串):长度为零的串称为空串,它不包含任何字符。 空格串(空白串):构成串的所有字符都是空格的串称为空白串。 注意:空串和空...原创 2020-02-21 17:51:13 · 1657 阅读 · 0 评论 -
树的非递归中序遍历和先序遍历
中序遍历比较重要,再次对其作出重点解释。//中序遍历void inPrint(BiTree p){ stack<BiTree> st; BiTree pr = p; int is_empty_stack = 0; do { while(pr != NULL) { st.push(p...原创 2020-02-20 10:59:01 · 198 阅读 · 0 评论