
数据结构
文章平均质量分 79
浩south
这个作者很懒,什么都没留下…
展开
-
数据结构--二叉树
树型结构和线性结构的区别 线性链表,一个节点最多只有一个前驱和一个后驱(循环链表)。树型结构的话则每一个节点可以有一个前驱节点和多个后驱节点,我们一般用到的是二叉树,也就是说有两个后继节点。基本概念 节点的度:一个节点的子数的数量称为该节点的度树的度:该树中节点的最大度数叶子节点:树中度为0的节点称为叶子节点,度不为0的节点称为分支节点节点的层数:树是一种层次结构树的深度:一棵树中节点...原创 2018-06-03 10:47:57 · 286 阅读 · 0 评论 -
c语言str相关的函数
C语言str系列库函数在不同的库中有不同的实现方法,但原理都是一样的。因为库函数都是没有进行入口参数检查的,并且str系列库函数在面试中经常容易被面试官喊在纸上写某一个函数的实现,因此本文参考了OpenBSD和vc++ 8.0库中的代码,结合自己的编程习惯,部分整理如下:1、strcpy[cpp] view plain copychar * strcpy(char *dst, const char...转载 2018-06-02 00:18:13 · 12576 阅读 · 0 评论 -
LeetCode-20. Valid Parentheses--栈的使用
这个问题太适合用栈来解决了,我一看到这个题目的时候想到了栈,但是以往用栈得写一个结构体,结果是我学的太死板了。bool isValid(char* s) { char stack[1000000]; int top=-1; int len=0; while(s[len]) { if (s[len]==')') {...转载 2018-05-31 21:22:13 · 113 阅读 · 0 评论 -
数据结构-线性表
数据之间具有3中基本结构: 线性结构:数据元素之间为1对1 关系 树形结构:数据元素之间为1对多的关系 网状结构:数据元素之间为多对多结构最简单的线性结构:线性表 下面是对顺序表的一些操作#include <stdio.h>#include <string.h>#define MAXSIZE 100 //定义线性表的最大长度typedef ...原创 2018-05-31 12:28:42 · 208 阅读 · 0 评论 -
哈希搜索算法
/************************************************** * 对于索引查找算法来说,记录保存的位置和关键字之间不存在对应的关系 * 在查找数据的时候需要经过不断的与关键字进行对比 * * 散列函数就是将关键字与记录保存的位置之间形成一种函数对应关系,称为散列函数,这种方式建立的表叫做散列表 * * 散列表的基本思想: * 以线性表中每...原创 2018-06-12 20:14:07 · 259 阅读 · 0 评论 -
LeetCode-Binary Tree Level Order Traversal II-搞定指向指针的指针和malloc的用法
对于这个题目,其实就是二叉树的按层遍历,然后将按层遍历的结果倒序存放而已,正好复习一下二叉树的按层遍历。void BinTree_Level(ChainBinTree *bt,void (*oper)(ChainBinTree *p)){ ChainBinTree *p; ChainBinTree *q[QUEUE_MAXSIZE]; int head,tail=0; if(...原创 2018-06-05 18:59:19 · 377 阅读 · 0 评论 -
索引表查找-c语言
/******************************************** * 创建索引表的基本思路是: * 将一个线性表(主表)根据一定的函数关系或条件划分为若干子表 * 然后为每个字表创建一个索引项 * 将这些索引项组合在一起构成一个可以索引主表的索引表 * * 索引表中每个索引项一般包括3部分内容: * 索引值(更具索引值可以找到对应的子表) * 子表的开始...原创 2018-06-12 16:53:07 · 5040 阅读 · 0 评论 -
二叉排序树(Binary Sorting Tree)-创建,删除,遍历
#include<stdio.h>#include<stdlib.h>typedef struct bst{ int data; struct bst *left; struct bst *right;}BSTree;void Insert(BSTree *t,int key){ BSTree *p; if(!p=((BS...原创 2018-06-12 16:06:14 · 257 阅读 · 0 评论 -
常用排序算法-冒泡,快排,选择排序,堆排序
在计算机中,由于数据的形式,数量和保存形式不同,对数据进行排序的方法也不同.按照排序过程中数据保存的形式不同,分为内部排序和外部排序两大类. 内部排序: 整个排序过程中不需要访问外存:1. 交换排序: 冒泡排序,快速排序2. 选择排序: 直接选择排序,堆排序3. 插入排序: 直接擦汗如排序,希尔排序4. 合并排序外部排序:...原创 2018-06-11 23:51:06 · 720 阅读 · 0 评论 -
LeetCode 205. Isomorphic Strings HashMap的应用
第一种想法是如果两个字符串中包含的不重复的字符的数量相等就返回true,否则返回false,看来还是我太天真了,像abb,aab这种就不满足情况。 然后又想到一种方法就是逐个比较字符串的字符,如果不相等的话,就让t字符串中的这个字符全部替换为s字符串中的字符,然后如果在之后的比较中,如果这个被替换的字符再次出现的话,判断是否和s字符串的当前字符相等,如果不相等,那肯定就返回false...原创 2018-06-16 18:52:14 · 235 阅读 · 0 评论