데이터 구조 - 10 양 방향 링크 삽입 및 삭제 노드
2885 단어 데이터 구조
양 방향 링크 - 지정 한 위치 와 같은 노드 삽입, 삭제
#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=i;
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;
node *temp=new node; // , node *temp; , , new
temp->x=data;
temp->left=p; //
temp->right=p->right; //temp p
p->right=temp; //p temp
}
void remove(node *head,int pos) // head pos
{
node *p;
p=head; //p , for ,
while(--pos) // , , , , , removeSame()
p=p->right;
node *temp; // , node *temp; ,
temp=p->right; //temp // bug,
p->right=temp->right; //p
if(temp->right!=NULL) // , , temp->right==NULL, ,bug
temp->right->left=p; // ,
}
void removeSame(node *head) // head
{
node *p,*t;
node *temp; // , node *temp; ,
p=head->right; //p ,
while(p)
{
t=p->right; //
while(t)
{
if(p->x==t->x) // ,
{
temp=p; //temp
p->left->right=temp->right; // , left ,
//if(temp->right!=NULL) // t ,t p , ,
p->right->left=temp->left; //
break;
}
t=t->right;
}
p=p->right;
}
}
int main()
{
node *list;
list=create(10); //
display(list); // , ,
insert(list,11,3); // , 、
display(list);
remove(list,10); // , 、
display(list);
insert(list,8,3); display(list);
removeSame(list);
display(list);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.