• 单向链表的封装


    #include<iostream>
    typedef  int DataType;
    typedef  int Status;
    typedef struct Node
    {   
        DataType data;
        struct Node *Next;
    }Node,*LinkList;
    #define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    using namespace std;
    class LList
    {
        LinkList L;
    public:
        LList()//构造一个空链表;
        {
            L=(LinkList)new Node;
            L->Next=NULL;
        }
        void Creat_List_H()//头插法
        {   
            while(1)
            {
                Node *p;
                bool b;
                p=(Node *) new Node;
                cout<<"请输入Data:"<<endl;
                cin>>p->data;
                p->Next=L->Next;
                L->Next=p;
                cout<<"Success"<<endl;
                cout<<"是否继续插入:   "<<endl;
                cout<<"是          1"<<endl;
                cout<<"否          0"<<endl;
                cin>>b;
                if(!b)
                {
                     break;
                }
            }
        }
        void Creat_List_T()//尾插法
        {   
            
            Node *tail;
            tail=(Node *)L;
            while(1)
            {
                bool b;
                Node *p;
                p=(Node *) new Node;
                cout<<"请输入Data:"<<endl;
                cin>>p->data;
                tail->Next=p;
                tail=p;
                p->Next=NULL;
                cout<<"Success"<<endl;
                cout<<"是否继续插入:   "<<endl;
                cout<<"是          1"<<endl;
                cout<<"否          0"<<endl;
                cin>>b;
                if(!b)
                {
                     break;
                }
            }
        }
        Node *GetNode()//按位置查找元素的地址
        {  
            int  pos;
            Node *p;
            cout<<"请输入查找位置:"<<endl;
            cin>>pos;
            p=L->Next;
            pos--;
            while(p&&pos)
            {
                p=p->Next;
                pos--;
            }
            if(!p)
            {
                cout<<"位置非法"<<endl;
            }
            return p;
        }
        Node *Locate(DataType e)//按值查找
        {   
            Node *p;
            p=(Node*)L->Next;
            while(p&&p->data!=e)
            {
                p=p->Next;
            }
            if(!p)
            {
                cout<<"输入非法"<<endl;
            }
            else
                return p;
        }
        void InsList()
        {
            int pos;
            Node *p,*q;
            cout<<"请输入插入位置:"<<endl;
            cin>>pos;
            pos--;
            if(pos==0)
            {
                p=L;
            }else{
                    p=L->Next;
                    pos--;
                    while(p&&pos)
                    {
                        p=p->Next;
                        pos--;
                    }
                }
            if(!p)
            {
                cout<<"位置非法"<<endl;
                return;
            }
            else
            {  
                q=(Node *)new Node;
                cout<<"请输入DATA:"<<endl;
                cin>>q->data;
                q->Next=p->Next;
                p->Next=q;
                cout<<"sucess"<<endl;
            }
        }
        void DelList()
        {
            int pos;
            Node *p,*q;
            cout<<"请输入删除位置:"<<endl;
            cin>>pos;
            pos--;
            if(pos==0)
            {
                p=L;
            }else{
                    p=L->Next;
                    pos--;
                    while(p&&pos)
                    {
                        p=p->Next;
                        pos--;
                    }
                }
            if(!p)
            {
                cout<<"位置非法"<<endl;
                return;
            }
            else
            {  
                q=p->Next;
                p->Next=q->Next;
                delete(q);
                cout<<"sucess"<<endl;
            }
        }
        void Display()
        {      
            for(Node *p=L->Next; p!=NULL; p=p->Next)
            {
                cout<<p->data<<endl;
            }
            cout<<"+++++++++++++++++++++++++++++"<<endl;  //分割输出;
        }
        ~LList()
        {
            Node *p,*q;
            p=(Node *)L->Next;
            while(p)
            {
                q=p;
                delete(q);
                p=p->Next;
            }
            delete(L);
            cout<<"此表已被销毁"<<endl;
        }
    };
    int main()
    {
        return 0;
     }

  • 相关阅读:
    判断字符串是否包含某一个值方法
    生成一个随机手机号
    python 常用数据类型及操作方法
    selenium 常用的定位方法
    mysql 多表查询
    转载--python全栈开发学习
    Jenkins执行jmeter自动化脚本方法
    阅读方法
    pytorch学习
    英文阅读材料记录
  • 原文地址:https://www.cnblogs.com/Howbin/p/8639410.html
Copyright © 2020-2023  润新知