c언어 리스트 예제

연결된 목록의 모든 멤버를 반복하기 위해 현재라는 포인터를 사용합니다. 머리에서 시작하도록 설정한 다음 각 단계에서 마지막 항목에 도달할 때까지 포인터를 목록의 다음 항목으로 이동합니다. 예를 들어 시스템에서 배열 id[]에서 정렬된 ID 목록을 유지 관리하는 경우 C의 첫 번째 간단한 링크 된 목록 우리가 3 노드와 간단한 링크 된 목록을 만들 수 있습니다. 이 섹션에는 인쇄, 역방향 및 읽기 작업을 수행하는 C 프로그램이 포함되어 있습니다. 인쇄 작업은 링크된 목록의 지정된 내용을 인쇄하고, 읽기 작업은 연결된 목록의 내용을 읽고, 작업 제거는 연결된 목록의 특정 내용을 제거하고 역방향 작업은 지정된 링크된 목록의 내용을 반전시바릅니다. 이 섹션의 프로그램은 연결된 목록의 중간 대부분의 노드를 인쇄하고, 링크된 목록을 역으로 읽고, 연결된 목록에서 중복 요소를 제거하고, 지정된 연결된 목록을 반전시키고, 지정된 링크된 목록의 첫 번째 N 요소를 반대로 합니다. 이전 프로그램에서 링크 된 목록 통과, 우리는 세 개의 노드와 간단한 링크 된 목록을 만들었습니다. 생성된 목록을 탐색하고 각 노드의 데이터를 인쇄해 보겠습니다. 통과의 경우 지정된 목록을 인쇄하는 범용 함수 printList()를 작성해 보겠습니다.

연결된 목록에 대한 가장 좋은 사용 사례는 스택과 큐이며, 이제 구현할 것입니다: 헤드에 대한 이중 포인터를 수신하고 값 val이 있는 목록의 첫 번째 항목을 제거하는 함수 remove_by_value를 구현해야 합니다. Linux 운영 체제에서 GCC를 사용하는 경우 프로그램을 수정해야 할 수 있습니다. 예를 들어, 이 섹션의 C 프로그램은 링크된 목록을 사용하여 다른 데이터 구조의 다양한 구현을 제공하는 첫 번째 10개의 자연 수를 인쇄하는 다음 프로그램을 고려합니다. 스택을 구현하는 프로그램, 큐를 구현, 이중 링크 된 목록, 순환 이중 링크 된 목록 및 링크 된 목록을 사용 하 여 이진 트리를 구현 하려면. 이중 링크된 목록의 각 노드에는 두 개의 주소 필드가 포함되며, 한 필드는 연결된 이전 노드의 주소를 저장하고 다른 주소 필드는 다음에 따를 다음 노드의 주소를 저장합니다. 원형 이중 링크리스트는 헤드 요소의 이전 포인터가 꼬리 요소와 꼬리 요소의 다음 포인터가 헤드 요소를 가리키는 이중 연결 목록입니다. 이진 트리는 각 노드에 왼쪽 참조, 오른쪽 참조 및 데이터 요소가 포함된 노드 그룹입니다. 이 섹션에는 Singly 링크된 목록의 작업을 보여 주는 C 프로그램도 포함되어 있습니다. Singly 링크된 목록에서 각 노드에는 다른 노드에 대한 단일 링크가 있습니다. 이 섹션에는 연결된 목록의 요소에 대한 작업을 수행하는 C 프로그램이 포함되어 있습니다. 이러한 작업에는 연결된 목록 2개의 해당 요소를 추가하고, 연결된 두 목록이 동일한지 테스트하고, 지정된 Singly 링크된 목록이 palindrome인지 테스트하여 연결된 목록의 모든 요소의 발생 횟수를 찾는 작업이 포함됩니다.