c++简单链表

不想写完了 其他查找什么 基本原理都差不多 不想写完了

#include <iostream>


class List_xd
{
  private:
      class Node
      {
           public:
           int value_xd;
           Node* next;
           Node():next(NULL)
           {


           }
           explicit Node(int val):value_xd(val),next(NULL)
           {


           }
           int getvalue()
           {
               return value_xd;
           }
      };
      Node* head_xd;
  public:
    List_xd()
    {
       head_xd=new Node;
    }


    Node* add(int val)
    {
        Node* temp=new Node(val);


        temp->next=head_xd->next;
        head_xd->next=temp;


        return temp;
    }


    int length()
    {
        int len=0;
        Node* p;
        for(p=head_xd->next;NULL!=p;p=p->next)
        {
            len++;
        }
        return len;
    }


    void clear()
    {
        Node* temp;
        for(temp=head_xd->next;NULL!=temp;temp=head_xd->next)
        {
           head_xd->next=temp->next;
           std::cout<<"delete:"<<temp->value_xd<<std::endl;
           delete temp;
        }
    }


    ~List_xd()
    {
        clear();
        delete head_xd;
    }


    Node* insert(int pos,int val)
    {
        if(pos<0||pos>this->length())
        {
            std::cerr<<"xxxxx";
        }
        else
        {
            Node* p;
            int i=1;
            for(p=head_xd->next;i<pos;i++)
            {
                p=p->next;
            }
            Node* ins=new Node(val);


            ins->next=p->next;
            p->next=ins;
            return ins;
        }
    }
};


int main()
{
    List_xd x;
    for (int i=0;i<10;i++)
    {


        x.add(i);
    }
    std::cout<<x.length()<<std::endl;
    x.insert(2,30);
    x.clear();
    std::cout<<x.length();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值