
数据结构
issac199854
种子不是一朝一夕就能发芽结出果实 而你手中的苹果耽搁了时间就不再好吃了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
@链表面试题
头文件内容: #include <stdio.h> #include <assert.h> #include <stdlib.h> typedef int DataType; typedef struct ListNode { int data; struct ListNode* next; }Lis原创 2018-10-25 00:36:02 · 367 阅读 · 1 评论 -
使用两个队列实现一个栈
使用两个队列实现一个栈。 (1)压栈:检测哪个队列有数据,将数据放到该队列。 (2)出栈:检测哪个队列有数据,将除队尾的数据导入另一个队列中,最后删除队尾。 (3)返回有数据的队尾节点。(前提是数据在该队列中) #include <stdio.h> #include <malloc.h> #include <assert.h> typedef int QDat原创 2018-10-29 00:54:23 · 410 阅读 · 0 评论 -
栈和队列面试题
采用顺序栈实现栈基本操作; 采用链式队列实现队列基本操作; #define MAXSIZE100; typedef int SDataType; typedef struct Stack { SDataType array[MAXSIZE]; int top; }Stack; typedef struct MinStack { Stack data; Stack min; }MinS...原创 2018-10-31 17:47:25 · 306 阅读 · 0 评论 -
二叉树基本操作及面试题(你想要的都有)
在几乎所有的二叉树操作中,尤其是在递归操作里,我们会发现其实质上是把每一个节点都当作是一棵树来处理,按照应有的规则去操作这棵树,保证在操作这一棵树不出现问题,那么所有的操作也将会跟着进行。特别要注意以下两个问题: (1)递归的出口。 (2)递归结束需要改变值就传二级指针。 定义如下: typedef char BDataType; typedef struct BTNode { BDataTyp...原创 2018-11-07 17:18:22 · 601 阅读 · 4 评论 -
二叉搜索树的操作
一、二叉搜索树的概念: 1.二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: (1)若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 (2)若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 (3)它的左右子树也分别为二叉搜索树 给定值的比较次数等于给定值节点在二叉排序树中的层数。如果二叉排序树是平衡的,则n个节点的二叉排序树的高度为Log2n+1,其查...原创 2018-11-13 02:42:27 · 348 阅读 · 0 评论 -
堆的基本操作
一、概念 一个关键码的集合,把这个集合的所有元素按完全二叉树顺序存储方式存储在一个一维数组中,并且满足任何一个元素的左右孩子的值均小于这个元素的值。这是小堆,大堆反之。说了这么多,不如两张图来说明一下!!! 下面我们看一下堆的基本操作。 备注:小堆实现对基本操作。 Heap.h #include <stdio.h> #include <assert.h> #include...原创 2018-11-13 00:54:32 · 308 阅读 · 0 评论 -
数据结构—排序
一、插入排序 1.直接插入排序: (1)基本思想: 每一次将一个待排序的元素,按其排序码的大小,插入到已经有序的一组元素的合适位置。直到全部元素插入完成。 (2)代码: void InsertSort(int *array,int size) { int i = 0; for(i = 1;i<size;i++)//第一个元素默认有序 { int key = arr[i]; in...原创 2018-11-23 23:44:19 · 550 阅读 · 0 评论