초 는 단일 체인 표 와 그 반전 (reverse) 을 안다.

링크 란 무엇 입 니까? 이런 데이터 구 조 는 Node 로 구성 되 는데 이 Node 들 은 함께 하나의 서열 을 나 타 냈 습 니 다.체인 테이블 은 가장 일반적 이 고 가장 간단 한 데이터 구조 로 stack, queue 등 다른 데이터 구 조 를 실현 하 는 기초 이다.
링크 는 배열 보다 삽입, 삭제 가 용이 합 니 다.
Node 는 다음 과 같이 정의 할 수 있 습 니 다.
typedef int element_type;
typedef struct node *node_ptr;

struct node {
element_type element;
node_ptr next;
};

그리고 머리 노드 를 할 지 말 지 에 대해 저 는 머리 노드 를 추가 하 는 것 을 제안 합 니 다. 이 유 는 다음 과 같 습 니 다.
1. 헤드 노드 가 없 으 면 첫 번 째 노드 를 삭제 한 후 실수 로 List 를 잃 어 버 립 니 다.
2. 머리 를 삽입 할 때 직관 적 인 방법 이 없다.
3. 일반적인 삭제 작업 은 먼저 앞의 노드 를 찾 아야 한다. 만약 에 머리 노드 가 없 으 면 첫 번 째 노드 를 삭제 하면 다르다.
그 다음 에 단일 체인 표 의 반전 을 중점적으로 실현 하 는 것 도 흔히 볼 수 있 는 문제 이다. 다음은 C 언어 실현 이다.
void list_reverse(LIST L)
{
	if (L->next == NULL) return;
	node_ptr p = L->next, first = L->next;
	while (p != NULL && p->next != NULL) {
		node_ptr next_node = p->next;
		p->next = next_node->next;
		next_node->next = first;
		first = next_node;
	}
	L->next = first;
}

다른 조작 에 대해 서 는 일일이 열거 하지 않 겠 습 니 다. 여러분 은 저의 github 에 관심 을 가 져 주 셔 도 됩 니 다.
https://github.com/booirror/data-structures-and-algorithm-in-c

좋은 웹페이지 즐겨찾기