체인 테이블

1. 체인 테이블 구조 정의
typedef struct ListElement_t_ {
    void *data;
    struct ListElement_t_ *next;
} ListElement_t;

typedef struct List_t_{
    int size;
    int capacity;
    ListElement_t *head;
    ListElement_t *tail;
} List_t;

2. 반전 체인 테이블 실현
int  ReverseList( List_t *list)
{
    if( list == NULL )
        return INPUT_ERROR;
    if( list->head == NULL )
        return INPUT_ERROR;    
    if( list->head->next == NULL )
        return 0;

    ListElement_t *pCurrent = list->head;
    ListElement_t *pNext = pCurrent->next;
    pCurrent->next = NULL;
    list->tail = pCurrent;
    while( pNext != NULL ){
        ListElement_t *pTmp = pNext->next;
        pNext->next = pCurrent;
        pCurrent = pNext;
        pNext = pTmp;
    }
    list->head = pCurrent;
    return 0;
}

기타 관련 문제는 다음과 같습니다.
연쇄 면접 문제 모음집
1. 단일 체인 테이블 기본 조작
2. 쌍사슬표 기본 조작
3. 순환 단일 체인 테이블 기본 조작
4, 반전 단일 체인 테이블
5. 단일 체인 테이블 밑에서 K번째 노드 찾기
6, 역순 인쇄 체인 테이블
7. 체인 테이블 중간 노드 찾기
8. 체인 테이블 K번째 노드 삭제, 평균 시간 복잡도 O(1)
9. 체인 시계에 고리가 있는지 판단
10. 두 개의 단일 체인 테이블이 교차하는지 판단
11. 교차 체인표의 첫 번째 교차 노드를 구한다
12. 고리가 있는지 판단하고 6형 고리인지 0형 고리인지 판정한다.
13. 체인표에 고리가 있는지 판단하고 고리 입구 노드를 구한다.
14. 두 개의 질서정연한 단일 체인 테이블 병합
15. 주어진 체인 테이블 중간에 있는 어떤 노드가 체인 테이블을 누비지 않고 끼워진 노드를 주어진 노드에 삽입하기 전에
16. 체인 테이블 중복 요소 삭제

좋은 웹페이지 즐겨찾기