http://www.geeksforgeeks.org/flattening-a-linked-list/

 #include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
#include <string>
#include <fstream>
#include <map>
#include <set>
using namespace std; struct node {
int data;
node *right;
node *down;
node(int d = ) : data(d), right(NULL), down(NULL) { }
}; struct cmp {
bool operator() (node *a, node *b) {
return a->data > b->data;
}
}; void push(node* &head, int k) {
node *new_node = new node(k);
new_node->down = head;
head = new_node;
} node* flatten(node *&root) {
priority_queue<node*, vector<node*>, cmp> S;
while (root) {
S.push(root);
root = root->right;
}
root = NULL;
node *p;
while (!S.empty()) {
node *top = S.top();
S.pop();
if (!root) {
root = top;
p = top;
}
else {
p->right = top;
p = p->right;
}
if (top->down) S.push(top->down);
}
return root;
} void print(node *head) {
while (head) {
cout << head->data << " ";
head = head->right;
}
} int main() {
node *root = NULL;
push( root, );
push( root, );
push( root, );
push( root, ); push( ( root->right ), );
push( ( root->right ), ); push( ( root->right->right ), );
push( ( root->right->right ), );
push( ( root->right->right ), ); push( ( root->right->right->right ), );
push( ( root->right->right->right ), );
push( ( root->right->right->right ), );
push( ( root->right->right->right ), ); root = flatten(root);
print(root);
return ;
}

最新文章

  1. 网站就必须用响应式布局吗?MVC视图展现模式之移动布局
  2. ArcGIS 10.5新功能预览
  3. Voreen (二) 入点出点计算
  4. #8.11.16总结#CSS常用样式总结(二)
  5. JavaScript一些基础技巧和注意事项,你了解这些吗?
  6. 为什么模板函数的声明和实现都放在.h文件中
  7. Entity Framework若干个扩展
  8. android之OptionsMenu
  9. Bootstrap新手常见问题
  10. java 缩放函数drawImage理解(个人总结)
  11. Mysql哪些字段适合建立索引
  12. HihoCoder1192 简单的树嵌入 dfs、构造
  13. (C/C++学习笔记) 六. 表达式
  14. centos:时间同步
  15. 用Win32 实现进度条
  16. 将Tp-link无线路由器桥接到Dlink无线路由器上
  17. html之内容解析
  18. js的浮点(小数)数+-*/
  19. Oracle dbms_random随机数包详解
  20. cdoj1328卿学姐与诡异村庄

热门文章

  1. Android 下Service
  2. iWatch开发:UI 组件说明
  3. 深入理解Tomcat系列之五:Context容器和Wrapper容器
  4. Java基础IO流
  5. 基于JT/T 1078协议设计和开发部标视频服务器
  6. Hadoop自带Sort例子分析
  7. mac Xvim 语法高亮
  8. sublime使用技巧(3)-- 常用快捷键【持续更新】
  9. 【Mysql】之基础sql语句模板
  10. PowerBuilder--Aes128加解密