zoukankan      html  css  js  c++  java
  • List单链表反转

    View Code
     1 //ListReverse
    2
    3 #include<iostream>
    4 using namespace std;
    5
    6 template<class Type> class List
    7 {
    8 private:
    9 template<class T> class LinkNode
    10 {
    11 public:
    12 Type data;
    13 LinkNode<Type>* link;
    14 LinkNode(LinkNode<Type> *ptr=NULL)
    15 {
    16 link=ptr;
    17 }
    18 LinkNode(const Type& item,LinkNode<Type>* ptr=NULL) //注意构造函数这里不能写<Type>
    19 {
    20 data=item;
    21 link=ptr;
    22 }
    23 };
    24 LinkNode<Type>* first;
    25
    26 public:
    27 List()
    28 {
    29 first=new LinkNode<Type>; //如果这里写first=NULL,那么后面很多不会成立。比如first->link就不存在了。
    30 }
    31
    32 void input(const Type& end)
    33 {
    34 LinkNode<Type> *curr=first;
    35 Type val;
    36 cin>>val;
    37 while(val!=end)
    38 {
    39 LinkNode<Type> *newNode=new LinkNode<Type>(val);
    40 curr->link=newNode;
    41 curr=newNode;
    42 cin>>val;
    43 }
    44 }
    45
    46 void output()
    47 {
    48 LinkNode<Type> *curr=first->link;
    49 while(curr!=NULL)
    50 {
    51 cout<<curr->data<<"";
    52 curr=curr->link;
    53 }
    54 cout<<endl;
    55 }
    56
    57 void reverse()
    58 {
    59 LinkNode<Type> *curr,*next,*third;
    60 curr=first->link;
    61 while(curr->link!=NULL)
    62 {
    63 next=curr->link;
    64 third=next->link;
    65 next->link=first->link;
    66 first->link=curr->link;
    67 curr->link=third;
    68
    69 }
    70 }
    71 };
    72
    73 int main()
    74 {
    75 List<int> list;
    76 list.input(-1);
    77 list.reverse();
    78 list.output();
    79 }

    循环链表一次一次即可了。注意first指针的指向。

    还有初始化链表的时候,一定要注意first指针是要LinkNode形式的,这样它才能有link,还要注意一点就是Type是模板形参,不能带默认值。

  • 相关阅读:
    YII框架实现排序
    YII2 实现登录时候修改最新登录时间
    YII框架下实现密码修改
    json在PHP中应用技巧
    更换Python pip库镜像地址
    Python3创建RIDE桌面快捷方式的另一种方法
    谈谈测试人员的基本素养
    《微软的软件测试之道》阅读笔记
    PPT如何一页多张打印且铺满整个页面
    Linux 在线模拟器
  • 原文地址:https://www.cnblogs.com/YipWingTim/p/2236807.html
Copyright © 2011-2022 走看看