- 博客(10)
- 收藏
- 关注
原创 数据结构之链表
链表:不要求逻辑上相邻的两个元素物理上野相邻:通过“链”建立起数据元素之间的逻辑关系。·插入/删除不需要移动数据元素,只需要修改链。#链表创建typedef struct LNode *List;struct LNode{ ElementType Data; List Next;};struct LNode L;List PtrL;#主要操作1.求表长int...
2019-11-18 22:36:06 187
原创 数据结构之线性表
类型名称:*线性表(list)*数据集对象:线性表是N(>=0)个元素构成的有序序列(a1,a2,a2……an)#操作集: 1.List MakeEmpty();初始化一个空线性表L2.ElementType FindKth(int K,List L);根据位序K,返回相应的元素3.int Find(ElementType x,List L);在线性...
2019-11-08 19:06:48 182
原创 二叉树的非递归后序遍历
#include <stdio.h>struct btree{ char val; struct btree *left; struct btree *right;}btree;//先序创建一棵二叉树void CreatBintree(struct btree *&T){ char val; data = getchar(); if( data == ...
2018-07-15 14:47:44 141
原创 二叉树遍历的非递归算法:先序/中序
//非递归算法实现的基本思路:使用堆栈、/*中序遍历非递归遍历算法1>当遇到一个节点,就把他压栈,并遍历他的左子树2>当左子树遍历结束后,从栈顶弹出这个节点并访问他3>然后按其右指针再去中序遍历该节点的右子树*///先序,中序,后序都是针对二叉树的根节点而言,一个节点必定会被访问三次。先序是当第一次访问节点时打印,中序是当第二次访问节点时打印,后序则是在第三次访问节点...
2018-07-15 00:57:54 233
原创 leetcode 二叉树的前序中序后序遍历
给定一个二叉树 示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]前序遍历#include <stdio.h>struct node { struct node *left; struct node *right; int val;};void PreOrderTraver...
2018-07-10 11:28:49 187
原创 三种方法实现斐波那契数列
#include #include using namespace std;//时间复杂度O(n)//空间复杂度O(n)long long Fib(long long n){//定义为longlong 是因为斐波那契数列很大 assert(n >= 0);//n必须大于0 if(n==0||n==1) { return n; } //建立一个指针,并为该指针开辟空间 //
2018-02-06 19:36:34 932
原创 分治算法 Divide Conquer:快速排序 Quicksort
*数组排序任务可以如下完成:1.设k = a[0],将k挪到适当的位置,使得比k小的数在它的左侧,比k大的数在它的右侧,和k相等的数左右皆可2.把k左侧数组快速排序3.把k右侧数组快速排序#include using namespace std;void swap(int &a,int &b){//交换变量a,b的值 引用:修改形参值实参的值也会随之改变 int tmp =
2018-01-31 15:32:13 335
原创 冒泡排序 bubblesort
#include using namespace std;void bubblesort(int *p,int len) { int i = 0; int j = 0; int k = len-1; int m = 0; int flag; /*用k来保存新的判断条件*/ for(i = 0;i<k;i++) { /*
2018-01-31 15:31:05 1102
原创 分治算法 Divide Conquer:归并排序 Mergesort
*数组排序的任务可以如下完成:1.把前一半排序2.把后一半排序3.把两半归并到一个新的有序数组,然后再拷贝回原数组,排序完成。#include using namespace std;void Mergesort(int a[],int s,int e,int tmp[]){//将数组a中的s到e位置的数排序 if(s < e){ int mid = s + (e-s)/
2018-01-30 23:49:55 407
原创 二分查找 Binary Search
二分查找函数二分查找函数Binary Search*写一个函数,在包含size个元素的,从小到大排序的int 数组a中查找元素p,如果找到,则返回元素下标,如果找不到,则返回-1,要求复杂度O(log(n))int Binary Search(int a[],int size,int p){ int left = 0;//查找区间左端点 int right = size
2018-01-29 17:07:52 170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人