체인 복습 (1)

1941 단어
연쇄 성질--여기서 생략
간단한 체인 테이블 기본 구조(cpp):
#include
using namespace std;
class Node {
public:
    int data;
    Node* next;
    Node(int _data) {
        data = _data;
        next = NULL;
    }
};
class LinkList {
private:
    Node* head;
public:
    LinkList() {
        head = NULL;
    }

};
int main() {
    LinkList linklist;
    return 0;
}

체인 테이블 삽입 함수 구현 - 매개 변수는 Node*와 int로 각각 삽입할 노드와 삽입할 노드의 Index, 즉 삽입 노드 뒤의 노드가 제 Index의 노드임을 나타낸다
void insert(Node* node,int index){
        if(head==NULL){// —— , head node
            head=node;
            return;
        }
        if(index==0){// :index=0. node , head node , node head
            node->next=head;
            head=node;
            return;
        }
        int count=0;
        Node* current_node=head;
        while(current_node->next!=NULL&&countnext; // index 
            count++;
        }    
        if(count==index-1){
            node->next=current_node->next;// node current , current node, 
            current_node->next=node;
        }

}

전체 삽입 프로세스 요약:
1. 체인 테이블이 비어 있는지 먼저 확인하고 비어 있으면 node를head로 설정합니다
2. index가 0인지 확인하고, 0이면 node를 체인 테이블에 삽입하는 첫 번째 위치를 표시한다. 즉, node를 헤드 앞자리로 설정하고 헤드를 노드로 업데이트하면 된다.
3. 현재 노드를 가리키는 바늘을 세우고 계수기를 덧붙여 체인 테이블을 순서대로 옮겨다니며 index의 앞자리를 찾는다(즉 index-1)
4,count==index-1을 검사하여 index의 값이 합법적인지 확인한 다음에 삽입 작업을 실행합니다. node의 다음을current의 다음으로설정하고current의 다음을node로 업데이트합니다. 순서가 어지럽지 않도록 주의하세요.
출력 함수 반복 (해설 약식)
void output(){
        Node* current_node;
        if(head!=NULL){
            current_node=head;
        }
        else{
            return;
        }
        while(current_node!=NULL){
            cout<data<next;
        }
        cout<

좋은 웹페이지 즐겨찾기