码迷,mamicode.com
首页 > 编程语言 > 详细

careercup-C和C++ 13.7

时间:2014-12-11 13:40:10      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   sp   for   on   数据   div   

13.7 写一个函数,其中一个参数是指向Node结构的指针,返回传入数据结构的一份完全拷贝。 Node结构包含两个指针,指向另外两个Node。

C++实现代码:

typedef map<Node*, Node*> NodeMap;
Node* copy_recursive(Node *cur, NodeMap &nodeMap){
    if(cur == NULL){
        return NULL;
    }
    NodeMap::iterator i = nodeMap.find(cur);
    if (i != nodeMap.end()){
        // we’ve been here before, return the copy
        return i->second;
    }
    Node *node = new Node;
    nodeMap[cur] = node; // map current node before traversing links
    node->ptr1 = copy_recursive(cur->ptr1, nodeMap);
    node->ptr2 = copy_recursive(cur->ptr2, nodeMap);
    return node;
}
Node* copy_structure(Node* root){
    NodeMap nodeMap; // we will need an empty map
    return copy_recursive(root, nodeMap);
}

 

careercup-C和C++ 13.7

标签:style   blog   ar   color   sp   for   on   数据   div   

原文地址:http://www.cnblogs.com/wuchanming/p/4157240.html

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