2024 / 7 / 26
哈夫曼树:
树中结点都被赋值,称为结点的权。
路径长度与权的乘积叫做该结点的带权路径长度。
一个树的带权路径长度是指该树所有结点的带权路径长度之和。
带权路径长度最小的二叉树被称为哈夫曼树(或最优二叉树)。
图
图是由顶点集(一个或多个)和边集组成。
图:G 顶点:V 边:E
G={(u,v)|u∈V,v∈V}
从顶点v到w若有路径存在,则v,w是连通的。若图中每个结点都连通,那么该图为连通图,否则就是非连通图。
强连通:既能从v到w,又能从w到v。若图中每个顶点都强连通,那么该图为强连通图,否则就是非强连通图。
有向图:
定义:
有向图是一副具有方向性的图,是有一组顶点和一组有方向的边组成的,每条方向的边都连接着一对有序的顶点。
有向图顶点分为 入度(箭头朝自己) 和 出度(箭头朝外)。
强连通分量的定义:
有向图的极大连通子图,叫强连通分量。
无向图:
定义:
全部由无向边构成图称为无向图
连通分量、连通图的定义:
无向图的极大连通子图叫做连通分量。
简单图:
定义:
在图中,不存在重复的边,不存在顶点到自身的边,这样的图为简单图。
直接插入排序
#include <iostream>
typedef int elemtype;
void a(elemtype a[],int n)
{
int i,j;
for(i=2;i<=n;i++)
{
if(a[i]<a[i-1])
{
a[0]=a[i];
for(j=i-1;a[0]<a[j];j--)
{
a[j+1]=a[j];
}
a[j+1]=a[0];
}
}
}
int main()
{
elemtype nums[]={49,38,65,97,76,13,27};
elemtype l=sizeof(nums)/sizeof(nums[0]);
a(nums,l);
for(int i=1;i<=8;i++)
{
std::cout<<nums[i]<<" ";
}
}