단일 체인 테이블 의 i 번 째 노드 삭제
#include
#include
typedef struct node
{
int data;
struct node *next;
} NODE;
// ( )
NODE *createEnd(int arr[], int len)
{
NODE *head = (NODE *)malloc(sizeof(NODE)); //
head->next = NULL;
NODE *end = head; //
for (int i = 0; i < len; i++) {
NODE *p = (NODE *)malloc(sizeof(NODE)); //
p->data = arr[i];
end->next = p; // p
end = p;
}
end->next = NULL; // ,
return head;
}
// i
NODE *delete(NODE *head, int i)
{
NODE *p = head;
int j = 1;
while (p->next && j < i) {
p = p->next;
++j;
}
if (p->next == NULL || j > i) { // , p , i 0 , ;
printf("Position Error
");
return 0;
}
NODE *temp = p->next;
p->next = temp->next;
free(p);
return head;
}
// : (1) n, i , 1<= i <= n, ;
// (2) i=n+1 , , , ; , *p , , *p ( p != NULL) *p ( p->next != NULL) j <= i , 。 , O(n)。
//
void print(NODE *head)
{
if (head == NULL) return;
NODE *p = head->next;
while (p != NULL) {
printf("%d
", p->data);
p = p->next;
}
}
int main(void)
{
int arr[] = {1,2,3,4,5,6,7};
int len = sizeof(arr)/sizeof(int);
NODE *head = createEnd(arr, len);
//
print(head);
delete(head, 5);
//
print(head);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조 상의 연습 (2) 싱글 체인 시트#include "stdafx.h" #include "stdlib.h" #include "malloc.h" #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.