码迷,mamicode.com
首页 > 其他好文 > 详细

【list】 可用于哈夫曼树的一种建树 选数 的链表方法 替代堆

时间:2016-08-02 17:13:20      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:【list】 可用于哈夫曼树的一种建树 选数 的链表方法 替代堆

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int a[]={1,2,3,4,5,6,7,8,9};
struct node
{
node(int xx):x(xx),next(NULL){}
int x; 
 node *next;
};
void fun()
{
 
}
int main()
{
node *head=new node(0);
node *p=head;
for(int i=0;i<9;i++)
{
node *add=new node(a[i]);
p->next=add;
p=add;
}

 node *q=head;
while(q)
{
cout<<q->x<<" ";
q=q->next;
}
cout<<endl;
  
 p=head->next;
q=p->next;
while(p->next!=NULL)
{

node *add=new node(p->x+q->x);
node  *qq=q; 
 while(add->x > qq->x && qq->next!=NULL)
     {
      qq=qq->next;
     }
  add->next=qq->next;
  qq->next=add;
  cout<<add->x<<endl;
p=q->next;
q=p->next;
}


 q=head;
while(q)
{
cout<<q->x<<" ";
q=q->next;
}
cout<<endl;
  
return 0;
}

[sts@bogon 20160731]$ g++ 0.cc
[sts@bogon 20160731]$ ./a.out
0 1 2 3 4 5 6 7 8 9                                       //链表的准备
3                                                         //新添加的结点
6
9
12
15
18
27
45 
0 1 2 3 3 4 5 6 6 7 8 9 9 12 15 18 27 45                  //最后的情况
[sts@bogon 20160731]$


【list】 可用于哈夫曼树的一种建树 选数 的链表方法 替代堆

标签:【list】 可用于哈夫曼树的一种建树 选数 的链表方法 替代堆

原文地址:http://wzsts.blog.51cto.com/10251779/1833579

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!