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

来源:互联网 发布:高速公路计量收费软件 编辑:程序博客网 时间:2024/05/21 08:51

数据结构的单链表的创建分为两种,分别为头插法和尾插法,本篇文章展示一种头插法的程序:
1.首先创建一个空链表结构体

struct listnode {     //链表成员的结构体,含有节点和指针,而链表的第一个成员称为头节点和头指针    int value; //节点 其中头节点的数据可以为空    listnode* next; //指向下一个链表成员的指针,所以也是listnode类型};

2.下面就是通过头插法创建单链表的函数:

listnode CreatlistHead(listnode* L,const int a[],int len) {   //a[]数组是用来存储想要创建链表的数据    for (int i = 0; i < len; i++) {        listnode* trans = new listnode; //new出一个链表变量,并要放在for循环里面,保持指向null        trans->value = a[i];   //分别将数据按顺序赋给将要插入链表的成员的节点中        trans->next = L->next;//将现在头指针与下一个成员的连接断开,并将想要插入的成员的指针指向第一个成员的节点        L->next = trans; //然后头节点指向想要插入的成员的节点    }    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
原创粉丝点击