⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 onelink2.h

📁 是一本教程的实例代码,可以下载后直接运行,即可以得到答案.
💻 H
字号:
#include <iostream.h>
#include "OnelinkNode2.h"              //单链表结点类,模板

template <class T>
class Onelink2                         //单链表类,模板
{
  public:
    OnelinkNode2<T> *head;             //单链表的头指针

    Onelink2(int n=0);                 //构造函数,以n个自然数建立单链表
    ~Onelink2();                       //析构函数

    friend ostream& operator<<(ostream& out,Onelink2<T> &h1);
                                       //输出单链表中各数据元素值,输出流运算符重载
};

template <class T>
Onelink2<T>::Onelink2(int n)           //构造函数,以n个自然数建立单链表
{                                      //算法同Onelink
    head=NULL;                         //n=0时,构造空链表
    if(n>0)                            //构造非空链表    
    {
        int i=1;
        OnelinkNode2<T> *rear,*q;
        head=new OnelinkNode2<T>(i);
        i++;
        rear=head;
        while(i<=n)              
        {
            q=new OnelinkNode2<T>(i);
            i++;
            rear->next=q;              //q结点链入rear结点之后
            rear=q;                    //rear指向新的链尾结点
        }
    }
}

template <class T>
Onelink2<T>::~Onelink2()               //析构函数,算法同Onelink
{
    OnelinkNode2<T> *p=head,*q;
    while(p!=NULL)
    {
        q=p;
        p=p->next;                     //到达p的后继结点
        delete q;                      //释放q结点所占用的存储单元
    }
    head=NULL;                         //单链表为空
}

template <class T>
ostream& operator<<(ostream& out,Onelink2<T> &h1) //输出流运算符重载
{
    cout<<"单链表:   ";
    h1.head->output(h1.head);          //输出以head为头指针的单链表
    return out;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -