c-c++
cool_flag
这个作者很懒,什么都没留下…
展开
-
完全二叉树的最后一个非终端节点的下标
今天突然想通了一件事,完全二叉树的最后一个非终端节点的下标为(n-2)/2,若一根完全二叉树有n个节点,则n-1为最后一个叶子节点的下标,而完全二叉树中一个节点的父亲节点的下标为此节点下标减去1再除2. 于是二叉树的最后一个非终端节点的下标就为(n-2)/2原创 2018-01-02 10:05:51 · 5285 阅读 · 6 评论 -
希尔排序,快速排序,堆排序
最近在准备数据结构的考试,于是用博客记录下自己复习的过程。今天的内容是三种高级排序。 希尔排序 当序列增量为incr[k]=2^(t-k+1)-1时,时间复杂度为O(n^1.5)。以序列增量分组,对每组进行大小调整。template<class T>void ShellInsert(T elem[],int n,int incr){ int i=incr; T e=elem[原创 2018-01-02 17:56:54 · 824 阅读 · 0 评论 -
图的深度优先遍历和广度优先遍历
最近几天在复习数据结构的考试,也算是一个查缺补漏的过程,所以手写代码记录一下.另外因为c/c++类中实参与形参最好不能重名的问题,困扰了许久,也是醉了.函数指针void (*visit)可以接收一个函数名,将函数作为参数,类似于python里的函数式编程. 指针函数int *visit的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数原创 2018-01-02 15:47:59 · 570 阅读 · 0 评论 -
整形图的深度遍历和广度遍历
比较简单的实现,图采用邻接矩阵的存储方式,且没有加上复制构造函数和重载运算符。#include <iostream>#include<stdexcept>#include<stdio.h>using namespace std;struct Node{ int data; Node *next; Node(){next=NULL;} Node(int ite原创 2018-01-02 15:51:33 · 269 阅读 · 0 评论