标签:【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