类实现之LinkedList

来源:互联网 发布:人脸识别是人工智能吗 编辑:程序博客网 时间:2024/05/22 06:32
#include <stdio.h>class Node{public:    Node* pre;    int num;    Node* next;    Node()    {        pre=NULL;        next=NULL;    }    Node(int num):num(num)    {        pre=NULL;        next=NULL;    }    ~Node()    {    }};class LinkedList{public:    Node* phead;    LinkedList()    {        phead=new Node();    }    ~LinkedList()    {    }    void Add(int num)    {        Node* pcur=phead;        while(pcur->next!=NULL)        {            pcur=pcur->next;        }        Node* pnew=new Node(num);        pnew->pre=pcur;        pcur->next=pnew;    }    void Add(int num,int index)    {        Node* pcur=phead;        int i=0;        while(pcur->next!=NULL&&i<index)        {            pcur=pcur->next;            i++;        }        Node* pnew=new Node(num);        pnew->pre=pcur;        pnew->next=pcur->next;        pcur->next->pre=pnew;        pcur->next=pnew;    }    int Remove(int index)    {        Node* pcur=phead;        int i=0;        while(pcur->next!=NULL&&i<=index)        {            pcur=pcur->next;            i++;        }        if(pcur!=NULL&&pcur->pre!=NULL) pcur->pre->next=pcur->next;        if(pcur!=NULL&&pcur->next!=NULL) pcur->next->pre=pcur->pre;        int temp=pcur->num;        delete pcur;        return temp;    }    int GetElement(int index)    {        Node* pcur=phead;        int i=0;        while(pcur->next!=NULL&&i<=index)        {            pcur=pcur->next;            i++;        }        return pcur->num;    }    int GetSize()    {        int i=0;        Node* pcur=phead;        while(pcur->next!=NULL)        {pcur=pcur->next;            i++;        }        return i;    }};int main(){    LinkedList list;    int i;    int length;    list.Add(1);    list.Add(2);    list.Add(3);    list.Add(4);    list.Add(5);    list.Add(6);    list.Add(7);length=list.GetSize();    for(i=0;i<length;i++)    printf("%d\n",list.GetElement(i));    printf("\n");    list.Remove(2);    length=list.GetSize();    for(i=0;i<length;i++)    printf("%d\n",list.GetElement(i));    return 0;}

原创粉丝点击