싱글 체인

참고 로 데이터 구 조 를 연습 해 보 겠 습 니 다. 오늘 의 문 제 는 머리 가 없 는 점, 단일 체인 표 꼬리 삽입 법 입 니 다.
   다음은 main. c:
#include "main.h"
int main(int argc, char *argv[])
{
    List *head = NULL;
    int v1 = 5;
    int v2 = 6;
    head = list_create();
    list_insert( &head, v1 );
    list_insert( &head, v2 );
    list_print( head );
    list_destory( head );
    return 0;
}

다음은 main. h:
#ifndef __MAIL_H__
#define __MAIL_H__
#include <stdio.h>
#include <stdlib.h>
#include "list.h"
#endif

다음은 list. c:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include "list.h"
List *list_create()
{
    List *head;
    head = (List *)malloc(sizeof(List));
    if (head)
    {
            head->data = 2;
            head->next = NULL;
            return head;
    }
    return NULL;
}
int list_insert( List **head, int data )
{
    List *tmp = *head, *p;
    List *v1;
    if(tmp == NULL)
    {
            v1 = (List *)malloc(sizeof(List));
            if(v1)
            {
                v1->data = data;
                v1->next = NULL;
                tmp->next = v1;
                printf("tmp->data = %d
", tmp->data); } } else { printf("====%d
",tmp->data); while(tmp->next) { tmp = tmp->next; } v1 = (List *)malloc(sizeof(List)); if(v1) { v1->data = data; v1->next = NULL; tmp->next = v1; } } } void list_print(List *node) { List *tmp = node; while(tmp) { printf("The data is [%d]
",tmp->data); tmp = tmp->next; } } void list_destory(List *node) { List *tmp = node; while( tmp ) { free( tmp ); tmp = tmp->next; } }

다음은 list. h:
#ifndef __LIST_h__
#define __LIST_h__
typedef struct _tag List;
struct _tag{
    int data;
    List *next;
};
int list_insert(List **head, int v1);
void list_delete(List *node);
void list_destory(List *node);
List *list_create();
void list_print(List *node);
#endif

작은 Makefile 을 추가 합 니 다.
all:main
CFLAGS=-g
main:main.o list.o
clean:
    rm -f *.o main

OK, 오늘 의 내용 은 여기까지 입 니 다.

좋은 웹페이지 즐겨찾기