데이터 구조 - 11 질서 있 는 양 방향 링크 에 노드 삽입

2817 단어 데이터 구조
양 방향 링크 - 질서 있 는 양 방향 링크 에 노드 삽입
양 방향 링크 - 질서 있 는 양 방향 링크 에 노드 삽입
#include
using namespace std;
struct node       //node   ,      node  ,     /   node  
{
	int x;
	node *left;   //         ,         
	node *right;
};

node* create(int n)         //    ,  n       ,         node*
{
	if(n<1)                 //    ,         
	{
		cout<x=rand()%100;
		p->right=temp;            // p right     temp,           
		temp->left=p;             //temp left  p,   left       
		p=temp;                   // p     temp, p        
	}

	p->right=NULL;                //     ,p->right  ,       right null
	head->right->left=NULL;       //     ,      left null

	return head;
}

void display(node *head)         //    
{
	node *p;
	p=head->right;               //p             , for          
	if(p==NULL)
		cout<x<right;
	}
	cout<right;               //p             , for          
	int temp;                    //         
	while(p)                     //                
	{	
		s=p->right;              //    p        
		while(s)
		{
			if(p->x > s->x)      //        x,    
			{
				temp=p->x;
				p->x=s->x;
				s->x=temp;
	
			}


			s=s->right;          //     
		}
		
		p=p->right;              //     
	}

}

void insert(node *head, int n)     //    n     head     
{
	node *p,*s;
	p=head;                        //p             , for          
	
	while(p->right)
	{
		if(p->right->x > n)        //            n    ,        
		{	
			node *temp=new node;
			temp->x=n;


			s=p->right;           //         node  s


			temp->right=p->right;
			p->right=temp;        //      ,      
			
			s->left=temp;         //      
			temp->left=p;


			break;
			
		}
		p=p->right;

	}


	if(p->right==NULL)            //           n ,         
	{
		node *temp=new node;
		temp->x=n;

		p->right=temp;            //            
		temp->right=NULL;         //right   null
		temp->left=p;             //    
	}

}

void insert1(node *head, int n)    //     ,                 ,    
{


	node *s,*p=head;                        //p             , for          
	node *t=new node;
	t->x=n;


	s=p->right;        //         node  s


	t->right=p->right; //      ,      
	p->right=t;       
			
	s->left=t;         //      
	t->left=p;


	sort(head);        //       


}


int main()
{
	node *list; 
	list=create(10);      //    
	display(list);        //         ,      ,    
	
	sort(list);           //  ,      
	display(list);        //        
 
	insert(list,-2);      //        
	display(list);        //            


	insert1(list,99);     //        
	display(list);        //            

	return 0;
}

좋은 웹페이지 즐겨찾기