数据结构单链表之创建链表(尾插法)

来源:互联网 发布:广东新闻频道 大数据 编辑:程序博客网 时间:2024/05/03 09:26

接上一篇内容,这次使用尾插法来创建单链表:
1.同样创建链表成员结构体:

struct listnode {    int value;    listnode* next;};

2.然后下面就是通过尾插法创建单链表的程序,这里面稍稍要去理解的是通过一个指针来标记新的头节点的方法:

listnode CreatlistTail(listnode* L, int a[], int len) {    listnode* r = L; //此句的意义是存储拥有头节点的listnode的地址,并且在下面循环时每当新插入一个新          成员时都会将其移动到新的成员上使其成为新的头节点,毕竟是尾插法嘛    for (int i = 0; i < len; i++) {        listnode* trans = new listnode;  //创建想要插入的新成员结构        trans->value = 0;        trans->next = NULL;    //以上三句初始化均为新的listnode链表成员        trans->value = a[i]; //创建一个待插入的指针        r->next = trans; //将头节点指向新成员,因为是尾插法,这一步显得十分简单        r = trans; //将最新的头节点存储到地址r上,上面说过了    }    return *L;}

3.同样编写显示函数测试代码:

void showlist(listnode* L) {    listnode* list_show;    int i = 1;    list_show = L;    if (list_show == NULL) {        cout << "此列表为空!" << endl;        return;    }    else {        list_show = list_show->next;    }    do {        cout << "链表第" << i << "个数据是" << list_show->value << endl;        list_show = list_show->next;        i++;    } while (list_show != NULL);}

测试结果如下所示,可以看到是程序正序输出数据的,说明用的是尾插法:
这里写图片描述

阅读全文
0 0
原创粉丝点击