数据结构-线性表(4)

数据结构-线性表(4)

单链表的整表创建

顺序存储结构的创建,其实就是一个数组的初始化,即声明一个类型和大小的数组并赋值的过程。

单链表不像顺序存储结构那么集中,可以很散,是一种动态结构。

对于每个链表来说,所占用空间的大小和位置是不需要预先分配划定的,可以根据系统的情况

和实际的需求即时生成。

单链表的创建过程就是一个动态生成链表的过程。即从 “空表” 的初始状态起,依次建立各元素的节点,

并逐个插入链表。

单链表整表创建的算法思路:

  1. 声明一个节点p和计算器遍历i;
  2. 初始化一空链表L;
  3. 让L的头结点的指针指向NULL,即建立一个带头结点的单链表;
  4. 循环
    1. 生成一个新节点赋值给p;
    2. 随机生成一个数字赋值给p的数据域p->data;
    3. 将p插入到头结点与前一新结点之间。

头插法

  //随机产生n个元素的值,建立带表头结点的单链线性表L(头插法)
  void CreateListHead(LinkList *L, int n){
    LinkList p;
    int i;
    //初始化随机数种子
    srand(time(0));
    *L = (LinkList)malloc(sizeof(Node));
    //先建立一个带头结点的单链表
    (*L)->next = NULL;
    for(i=0; i < n; i++){
      //生成新结点
      p = (LinkList)malloc(szieof(Node));
      p->data =rand() * 100 + 1;
      p->next = (*L)->next;
      //插入到表头
      (*L)->next = p;
    }
  }
头插法,始终让新结点在第一的位置。
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 数据结构-线性表(4)