
数据结构
CDatreides
这个作者很懒,什么都没留下…
展开
-
输入一个数组,判断该数组是不是二叉搜索树的后序遍历的结果。
解题思路:首先,我们应该对二叉搜索树有所了解。二叉搜索树:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。本题是利用递归思想,判断根节点的左子树...原创 2018-08-15 11:41:19 · 1286 阅读 · 0 评论 -
Given a binary tree, determine if it is a valid binary search tree (BST).
思路:定义一个数组,按照中序输出的方式将值放入数组中,然后遍历比较,满足从小到大排列,则满足二叉搜索树。原创 2018-08-24 15:45:25 · 564 阅读 · 0 评论 -
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Sol...原创 2018-08-17 09:55:12 · 314 阅读 · 0 评论 -
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个节点并返回。
/*struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struct TreeLinkNode *next; TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(...原创 2018-08-17 09:52:21 · 1891 阅读 · 0 评论 -
静态数据表的实现
代码实现顺序表的操作函数// 值类型typedef int DataType;typedef struct SeqList {DataType data; // 值int size; // 数量} SeqList;// 初始化void SeqListInit(SeqList *pSL);// 尾部插入void SeqListPushBack(SeqList *pSL, Data...原创 2018-06-16 15:18:36 · 1014 阅读 · 0 评论 -
数据结构——链表
#pragma once// 值类型 typedef int DataType;typedef struct SListNode { DataType data; // 值 struct SListNode *pNext; // 指向下一个结点 } SListNode;#include<stdio.h>#include<assert.h>#inc...原创 2018-06-29 18:07:22 · 238 阅读 · 0 评论 -
数据结构——链表面试题
#pragma once#include"slist.h"//从头到尾打印单链表void print_single(SListNode *pFirst){ assert(pFirst); SListNode *pNode = pFirst; SListNode *end = NULL; while (end != pFirst) { while (pNode->p...原创 2018-06-29 18:27:02 · 287 阅读 · 0 评论 -
数据结构——栈
#pragma oncetypedef int SDataType;#include<stdio.h>#include<stdlib.h>#include<assert.h>typedef struct Stack { SDataType array[100]; int top;//表示个数} Stack;// 初始化 void Sta...原创 2018-06-29 22:46:47 · 206 阅读 · 0 评论 -
数据结构——栈和队列及其面试题
1. 利用顺序表实现栈函数接口:typedef int SDataType;typedef struct Stack {SDataType array[100];int top;} Stack;// 初始化void StackInit(Stack *pStack);// 压栈void StackPush(Stack *pStack, SDataType data);// 出栈...原创 2018-07-10 16:37:46 · 304 阅读 · 0 评论 -
数据结构——二叉树
#pragma once#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>#include"Queue.h"typedef char DataType;typedef struct TreeNode{ struct TreeNode *ple...原创 2018-07-23 14:46:56 · 247 阅读 · 0 评论 -
数据结构——堆
#pragma once#include <assert.h>#include <stdlib.h>#include <string.h>#include <stdio.h>typedef struct Heap { int array[100]; int size;} Heap;void HeapInit(Heap *pH...原创 2018-08-07 15:13:36 · 276 阅读 · 0 评论 -
数据结构——二叉树面试题(1)
#pragma once#include <stdlib.h>#include <stdio.h>#include <assert.h>typedef char DataType;typedef struct BTreeNode { struct BTreeNode *pLeft; struct BTreeNode *pRight; D...原创 2018-08-07 15:20:10 · 250 阅读 · 0 评论 -
数据结构——二叉树面试题(2)
#pragma once#include <stdlib.h>#include <stdio.h>#include <assert.h>typedef struct BSTreeNode { struct BSTreeNode * pLeft; // prev struct BSTreeNode * pRight; // next int d...原创 2018-08-07 15:21:16 · 928 阅读 · 0 评论 -
Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using ex
题目为:Linked List CycleGiven a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space? 解法思想:算法思想就是设置一个快指针fp和一个慢指针sp,两个指针起始同时指向head节点,其中快指针每次走两步,慢指针...原创 2018-08-10 11:59:09 · 364 阅读 · 0 评论 -
常见排序算法的整理
一直以来对排序算法没有深刻的理解,只能简单的代码编写,因此今天抽出一些时间对以前排序的不足加以修改。这里我们来探讨一下常用的比较排序算法,下表给出了常见比较排序算法的性能:稳定性的判别:如果说排序前两个相等的数位置是a,b,排序后两个数仍然是a,b,则说明这个排序是稳定的。通俗来讲就是说:排序前后两个相等的数相对位置不发生改变。冒泡排序:1.比较相邻的元素,如果前者大于后者,则...原创 2018-11-17 15:03:23 · 352 阅读 · 1 评论