您的位置:首页 > 理论基础 > 数据结构算法

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

2017-12-19 21:12 375 查看
接上一篇内容,这次使用尾插法来创建单链表:

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);
}


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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 单链表