선두 노드의 단방향 순환 체인 테이블

1561 단어
#include #include #include using namespace std;
//체인 테이블의 한 노드를 정의하는 구조체template struct List {T data;//노드 데이터 필드List* next;//노드 포인터 필드List() {} List(T data, List*next) {this->data=data;this->next=next;};
//사용자 정의 체인 테이블 용기template
class MyList { private: List*phead; public: MyList() { phead=new List; phead->data=NULL; phead->next=phead; } ~MyList() { List*p=phead->next; while(p!=phead) { List*q=p; p=p->next; delete q; } delete phead; }
     int get_size()//  
    {
	 int j=0;
	 List*p=phead->next;
      while(p!=phead)
    	{
        	j++;
        	p=p->next;
        }
   	return j;
    } 
	 
	 void Insert(int i,const T&element)//   
	{
		List*p=phead->next;
	    for(int j=0;jnext;	
		 p->next=new List(element,p->next);
     }
     void Delete(int j)// 
   	 {
   	 	List*q=phead->next;
   	 /*	if(j==0)
   	 	{
   	 	  delete phead;
   	 	  phead=q;
	    }
	    else{*/
	    List*deleteList;
	     for(int i=0;inext;
		
		deleteList=q->next;
		q->next=q->next->next;
	  delete deleteList;
 	//}
	 }
	void Output()
	 {
	   	List*p=phead->next;
	     while(p!=phead&&p!=NULL)
	 		{
			 cout<data<next;
		    }
			 cout<

} ;
int main() { int k,n; cin>>n; MyListmylist; for(k=0;k mylist.Insert(k,k); mylist.Output(); cout<
mylist.Insert(0,5); mylist.Output(); cout<
mylist.Delete(0); mylist.Output(); cout< }

좋은 웹페이지 즐겨찾기