数据结构-链表

实现功能:

数据结构-链表_第1张图片

         1. 定义结构体

typedef int data_t;

typedef struct note
{
    data_t data;
    struct note *next;
}listnote, *linklist;

                data_t data;:定义了一个名为data的字段,其类型为data_t;

                struct note *next;:定义了一个名为next的指针字段,该指针指向与当前结构体相同

        类型的下一个结构体

                listnotestruct note的别名

                linklist是一个指向struct note的指针的别名

        2. 创建一个空链表

数据结构-链表_第2张图片

linklist list_create(){

    linklist H;
    //1. 申请内存
    H = (linklist)malloc(sizeof(listnote));
    if(H ==NULL){
        printf("malloc failed\n");
    }
    //2. 赋初值
    H->data = 0;
    H->next = NULL;
    //3. 返回值
    return H;
}

        3. 尾部插入和遍历

                尾部插入分为三步:1. 建立一个新节点

                                ①malloc

                                ②赋初值

                             2. 找尾节点        

                             3. 实现尾部插入

int list_tail_insert(linklist H,data_t value){

    if (H == NULL)
    {
        printf("H is NULL\n");
        return -1;
    }
    
    //1.new a note
    linklist p;
    linklist q;

    if ((p=(linklist)malloc(sizeof(listnote)))== NULL)
    {
        printf("malloc is failed\n");
        return -1;
    }

    p->data = value;
    p->next = NULL;

你可能感兴趣的:(C数据结构,数据结构)