단일 체인 테이블 에서 O (1) 시간 복잡 도 삭제 노드 실현
1816 단어 데이터 구조
링크 노드
struct LinkNode
{
datatype data;
LinkNode* next;
} 단일 체인 표 의 특정한 노드 를 삭제 할 때 가장 쉽게 생각 할 수 있 는 방법 은 먼저 삭제 할 점 p 의 이전 노드 q 를 찾 고 이 전구 노드 포인터 필드 의 값 을 이용 하여 p 의 위 치 를 확인 하 는 것 이다.그리고 아래 문장 을 사용 하여 노드 p 를 삭제 합 니 다.
p=p->next; 그러나 이 방법 은 p 의 전구 노드 를 찾 아야 하기 때문에 시간 복잡 도 O (n) 를 옮 겨 다 닌 다.
시간 복잡 도 O (1) 로 같은 삭제 효 과 를 낼 수 있 는 방법 을 소개 한다.이것 은 삭제 할 노드 p 만 알 고 삭제 할 노드 의 후계 노드 p - > next 를 알 수 있 습 니 다. 우 리 는 후계 노드 를 이용 하여 현재 삭제 할 노드 (후계 노드 가 데이터 구조 단위 로 이동) 를 덮어 쓰 는 방법 으로 이 노드 를 삭제 하 는 효 과 를 실현 할 수 있 습 니 다.
void DeleteNode(&LinkNode* Head,&LinkNode* Deleted)
{
if(&Deleted->next!=NULL)
{
LinkNode* Next=Deleted->next;
Deleted->next=Next->next;
Deleted->data=Next->data;
free(Next);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.