自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 数据结构之链表

链表: 不要求逻辑上相邻的两个元素物理上野相邻:通过“链”建立起数据元素之间的逻辑关系。 ·插入/删除不需要移动数据元素,只需要修改链。 #链表创建 typedef struct LNode *List; struct LNode { ElementType Data; List Next; }; struct LNode L; List PtrL; #主要操作 1.求表长 int...

2019-11-18 22:36:06 179

原创 数据结构之线性表

类型名称:*线性表(list)* 数据集对象:线性表是N(>=0)个元素构成的有序序列(a1,a2,a2……an)#操作集: 1.List MakeEmpty();初始化一个空线性表L 2.ElementType FindKth(int K,List L);根据位序K,返回相应的元素 3.int Find(ElementType x,List L);在线性...

2019-11-08 19:06:48 170

原创 二叉树的非递归后序遍历

#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 127

原创 二叉树遍历的非递归算法:先序/中序

//非递归算法实现的基本思路:使用堆栈、 /*中序遍历非递归遍历算法 1>当遇到一个节点,就把他压栈,并遍历他的左子树 2>当左子树遍历结束后,从栈顶弹出这个节点并访问他 3>然后按其右指针再去中序遍历该节点的右子树 */ //先序,中序,后序都是针对二叉树的根节点而言,一个节点必定会被访问三次。先序是当第一次访问节点时打印,中序是当第二次访问节点时打印,后序则是在第三次访问节点...

2018-07-15 00:57:54 221

原创 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 176

原创 三种方法实现斐波那契数列

#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 915

原创 分治算法 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 321

原创 冒泡排序 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 1082

原创 分治算法 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 393

原创 二分查找 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 164

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除