C++单链表的简单实现

头文件:practice2.h

#ifndef PRACTICE2_H_INCLUDED
#define PRACTICE2_H_INCLUDED


#include<iostream>

class  ThreeLetterList
{
   private:

   class  ThreeLetterNode
   {
    public:
        char data[3];
        ThreeLetterNode *link;

    };
    ThreeLetterNode* first;
    public:
        void test();
        void show();

};
void ThreeLetterList::test()
{
    ThreeLetterNode *f=new ThreeLetterNode();
    f->data[0]='b';
    f->data[1]='a';
    f->data[2]='t';
    f->link=0;

    first=f;

    f=new ThreeLetterNode();
    f->data[0]='c';
    f->data[1]='a';
    f->data[2]='t';
    f->link=0;
    first->link=f;


}
void ThreeLetterList::show()
{
    std::cout<<first->data[0]<<first->data[1]<<first->data[2]<<std::endl;
    std::cout<<first->link->data[0]
        <<first->link->data[1]
        <<first->link->data[2]
        <<std::endl;

}

#endif // PRACTICE2_H_INCLUDED

practice.cpp文件

#include <iostream>
#include "practice2.h"
using namespace std;
class List;

class Node//节点
{
friend class List;//申明成友元类
private:
    int data;
    Node *link;  //指向下一个节点的指针
};

class List
{
public:
    void test();
    void show();
private:
    Node *first;//指向第一个节点的指针

} ;
void List::test()
{

    Node *f=new Node();
    f->data=44;
    f->link=0;

    first=f;

    f=new Node();
    f->data=72;
    f->link=0;

    first->link=f;

    f=new Node();
    f->data=210;
    f->link=0;
    first->link->link=f;


}
void List::show()
{
    cout<<first->data<<endl
        <<first->link->data<<endl
        <<first->link->link->data<<endl;
}

int main()
{
    List a;
    a.test();//创建了三个节点
    a.show();
    cout<<"O"<<endl;

    ThreeLetterList l;
    l.test();
    l.show();
    return 0;
}
原文地址:https://www.cnblogs.com/libin123/p/10420088.html