데이터 구조 복습 노트 (2) - 단일 체인 시트 (C 언어)

2302 단어
정의 구조 체

typedef struct _node{
    int data;
    struct _node *next;
} Node;

( )


void add(Node *head,int i){
    Node *p=(Node*)malloc(sizeof(Node));  //     
    p->data=i;
    p->next=NULL;
    Node *last=head;  //               
    while(last->next){
        last=last->next;
    }
    last->next=p;
}

, ( ), ( )。


void insert_list(Node *head,int i,int value){
    Node *PNode=head->next;
    Node *p=(Node*)malloc(sizeof(Node));
    p->data=value;
    int j=1;
    while(jnext;
        j++;
    }
    p->next=PNode->next;
    PNode->next=p;
}


void delete_list(Node *head,int i){
    Node *p=head->next;
    Node *pre=head;
    int j=1;
    while(jnext;
        p=p->next;
        j++;
    }
    pre->next=p->next;
    free(p);
}

, , 。

x


void delete_samevalue(Node *head,int x){
    Node *p=head->next,*pre=head,*q;
    while(p!=NULL){
        if(p->data==x){
            q=p;
            p=p->next;
            pre->next=p;
            free(q);
        }else{
            p=p->next;
            pre=pre->next;
        }
    }
}

,pre p 。 p x, , p , p pre 。

(q p , p 。)


void print_list(Node head){
    Node *last;
    for(last=head.next;last;last=last->next)  //              
        printf("%d\t",last->data);
    printf("
"); }

, main 。 :

1. 。

2. 。

좋은 웹페이지 즐겨찾기