数据结构c语言版严蔚敏源代码(数据结构严蔚敏代码实现)
admin 发布:2022-12-19 13:35 124
本篇文章给大家谈谈数据结构c语言版严蔚敏源代码,以及数据结构严蔚敏代码实现对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、求严蔚敏教授编写的(《数据结构》C语言版)中赫夫曼算法的完整代码
- 2、求 《数据结构c语言版》 完整源代码(严蔚敏、吴伟民编著)
- 3、关于严蔚敏C语言版数据结构的栈PUSH实现代码
- 4、跪求,数据结构堆排序的完整代码?严蔚敏版本的。要求用书上的算法实现,c语言版本的。
- 5、严蔚敏的数据结构(C语言版)最短路径算法 代码段:p[w]=p[v];p[w][w]=true;//p[w]=p[v]+[w]是什么意思
求严蔚敏教授编写的(《数据结构》C语言版)中赫夫曼算法的完整代码
//*************预定义****************
#
include
stdio.h
#
include
malloc.h
#
include
iostream.h
#
include
conio.h
#
include
string.h
#
define
MAX_LENGTH
100
typedef
char
**HuffmanCode;
//**********数据结构*************
typedef
struct
{
int
weight;
//权值
int
parent,lchild,rchild;
//双亲,左右孩子
}HTNode,*HuffmanTree;
//结点和指针
//**********select函数**************
void
Select(HuffmanTree
HT,int
i,int
s1,int
s2)
{
//在建立哈夫曼树的所有结点中选择权值最小的两个结点存放在s1,s2中
int
j,k=1;
while(HT[k].parent!=0)
k++;
s1=k;
for(j=1;j=i;++j)
if(HT[j].parent==0HT[j].weightHT[s1].weight)
s1=j;
k=1;
while((HT[k].parent!=0||k==s1))
k++;
s2=k;
for(j=1;j=i;++j)
if(HT[j].parent==0HT[j].weightHT[s2].weightj!=s1)
s2=j;
}
//**********构建哈夫曼树***********************
void
HuffmanCoding(huffmanTree
HT,hu)
void
HuffmanCoding(HuffmanTree
HT,HuffmanCodeHC,int
*w,int
n)
{
int
m,i,s1,s2,start,c,f;
HuffmanTree
p;
if(n=1)
return;
m=2*n-1;//由得到的叶子数而计算结点总数
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode));//分配存储空间
for(p=HT+1,i=1;i=n;++i,++p,++w)
{
p-weight=*w;//为结点初始化权值
coutendl"HT["i"].weight="p-weight"
";
p-parent=0;
p-lchild=0;
p-rchild=0;
}
for(;i=m;++i,++p)
{
p-weight=0;
p-parent=0;
p-lchild=0;
p-rchild=0;
}//初始化双亲和左右孩子,使他们成为孤立的
coutendlendl"哈弗曼树创建的顺序如下:";
for(i=n+1;i=m;++i)
{
Select(HT,i-1,s1,s2);
//调用select函数
HT[s1].parent=i;
HT[s2].parent=i;
HT[i].lchild=s1;
HT[i].rchild=s2;
HT[i].weight=HT[s1].weight+HT[s2].weight;//新结点的权值是s1和s2权值的和
coutendl"HT["s1"]
and
HT["s2"]
create";
cout"
HT["i"],
weight="HT[i].weight;
}//每次选择最小的两个结点做左右孩子,权值和为新的结点的权值和,删去连个小的结点
//*********哈夫曼编码*****************
HC=(HuffmanCode)malloc((n+1)*sizeof(char
*));
char
*cd;
cd=(char
*)malloc(n*sizeof(char));
cd[n-1]='\0';
coutendlendl"HuffmanTree编码是:"endl;
for(i=1;i=n;++i)//从底下往上寻回编码
{
start=n-1;
for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent)
if(HT[f].lchild==c)
cd[--start]='0';
else
cd[--start]='1';
HC[i]=(char*)malloc((n-start)*sizeof(char));
strcpy(HC[i],cd
本篇文章给大家谈谈数据结构c语言版严蔚敏源代码,以及数据结构严蔚敏代码实现对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
);printf("\nHT[%d]
node's
Huffman
code
is:
%s",i,HC[i]);
}
free(cd);
}
//****************主函数部分********************
void
main()
{
HuffmanTree
HT;
HuffmanCode
HC;
int
n,i;
int
*w,W[MAX_LENGTH];
cout"***********本实验实现的是哈夫曼树的建立以及编码*********";//交互信息
coutendl"请输入哈弗曼树元素的个数:
";
cinn;
for(i=0;in;++i)
{
cout"请输入第
"i+1"个元素的权值(0~255的整数):
";
cinW[i];
}
w=W;
HuffmanCoding(HT,HC,w,n);
getch();
}
个人觉得这个有点长。。不知道对不对。看看吧~
求 《数据结构c语言版》 完整源代码(严蔚敏、吴伟民编著)
整理严蔚敏全部数据结构资料:包括电子书、习题集答案、纯C代码、教学讲义和课件.还有数据结构笔记和数据结构1800复习例题与答案。
下载地址1:
下载地址2:
下载地址3:
这个 地址你去下载把 CSDN
关于严蔚敏C语言版数据结构的栈PUSH实现代码
ElemType是笔误S.base=(ElemType *)malloc (S.base, (S.stacksize+STACKINCREMENT)*sizeof(Elemtype));这个是分配一段内存,长度是(S.stacksize+STACKINCREMENT)*sizeof(Elemtype)这么多字节,因为这个函数是重新分配的,所以也要分配表s.base的存储空间
跪求,数据结构堆排序的完整代码?严蔚敏版本的。要求用书上的算法实现,c语言版本的。
哥们,这是严蔚敏的数据结构书上的堆排序算法,代码如下,试一下吧
堆排序heapsort(第26行至37行)首先调用建堆函数buildheap,将n个待排序记录建立一个初始堆,然后重复执行n-1次元素交换(第32行至34行)和siftdown进行堆排序。init和print函数与图8.1相同。为节约篇幅,只给出其函数原型,略去其实现。
1 #include stdlib.h
2 #define N 8
3 int a[N];
4 void init()
5 void print()
6 int siftdown(int i,int n)
7 {
8 int t;
9 int j = 2*i + 1;
10 while (j n) {
11 if ((j (n-1)) (a[j] a[j+1])) j++;
12 if (a[i] = a[j]) return 0;
13 t = a[i];
14 a[i] = a[j];
15 a[j] = t;
16 i = j;
17 j = 2*i + 1;
18 }
19 }
20 void buildheap(int n)
21 {
22 int i;
23 for (i = n/2-1;i = 0;i--)
24 siftdown(i,n);
25 }
26 void heapsort(int n)
27 {
28 int i,t,j;
29 buildheap(n);
30 for (i = 0;i n;i++) {
31 print(N);
32 t = a[0];
33 a[0] = a[n-i-1];
34 a[n-i-1] = t;
35 siftdown(0,n-i-1);
36 }
37 }
38 void main()
39 {
40 init(N);
41 print(N);
42 heapsort(N);
43 print(N);
44 }
严蔚敏的数据结构(C语言版)最短路径算法 代码段:p[w]=p[v];p[w][w]=true;//p[w]=p[v]+[w]是什么意思
二维数组P中保存的是v0到各个点的最短路径。在v行中,值为true的列连起来,就是v0到v的最短路径。因为v0到w点的最短路径是v0到v的最短路径在加上v,w,所以w列先复制所有的v列的值,然后在将p[w][w]=true。此时w行中所有值为true列,就是v0到w的最短路径
数据结构c语言版严蔚敏源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于数据结构严蔚敏代码实现、数据结构c语言版严蔚敏源代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-14网站怎么设计,网站怎么设计怎么实现的
- 05-12网页设计需要学什么,网页设计学什么语言
- 05-09网页代码,网页代码快捷键
- 05-07pb超级报表源代码(pb报表工具)[20240507更新]
- 05-07简历源代码可以上传照片的简单介绍[20240507更新]
- 05-07广告切换源代码免费下载(广告切换源代码免费下载安装)[20240507更新]
- 05-06单页网站的代码(完整的网页代码)[20240506更新]
- 05-06阁楼网源代码(阁楼是什么网站)[20240506更新]
- 05-06个人主页图片代码(个人主页图片代码怎么弄)[20240506更新]
- 05-06提取微信名片代码(微信名片信息提取)[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接