Chinaunix首页 | 论坛 | 博客
  • 博客访问: 460501
  • 博文数量: 285
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 629
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-14 17:53
个人简介

相信自己,快乐每一天

文章分类

全部博文(285)

分类: C/C++

2013-10-31 10:09:45

原文地址:链表的反转 C++实现 作者:kgisme170

#include <iostream>
#include <memory>
using namespace std;
struct node{
    int data;
    node* next;
    node(){data=0;next=0;}
    node(int d){data=d;next=0;}
    node* add(int d){next=new node(d);return next;}
    ~node(){delete next;}
    node* reverse(){
        node* current=this;
        node* n=current->next;
        this->next=0;
        while(1){
            node* nn=n->next;
            n->next=current;
            current=n;
            if(nn)n=nn;
            else break;
        }
        return n;
    }
    void print(){
        node* t=this;
        while(t){
            cout<<t->data<<' '<<t->next<<endl;
            t=t->next;
        }
    }
};

int main()
{
    node* pn=new node(1);
    auto_ptr<node> n(pn);
    n->add(2)->add(3)->add(4)->add(5);
    node* p=n->reverse();
    p->print();
    //delete p;----while auto_ptr,don't have to delete;

    cout << "Hello world!" << endl;
    return 0;
}

输出结果是 5 4 3 2 1

漫谈RPC
漫谈组件技术:从OLE到COM到ActiveX到SOAP
Windows RPC编程入门
Windows Com编程入门
Windows编程: 再见MFC
Windows编程: 写一个系统服务
Windows编程 最简单的窗口实例
Windows编程 用MSXML来操纵一个xml文件
Windows平台进程间通信: 内存映射
Windows平台进程间通信: dll共享变量
C++编程 Visitor模式(访问者)
C++ 用Ado连接数据库
链表的反转 C++实现
阅读(518) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~