类实现之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;}