21xrx.com
2024-06-03 04:04:50 Monday
登录
文章检索 我的文章 写文章
C++实现尾插法建立单链表
2023-07-05 00:51:10 深夜i     --     --
C++ 尾插法 单链表 建立

单链表是一种常见的数据结构,可以用于各种场景。其中,尾插法是一种建立单链表的较为简单的方法,适用于链表元素数量较多的场景。本文将介绍使用C++实现尾插法建立单链表的方法。

首先,我们需要定义单链表的节点结构体,包括数据域和指针域。例如:


struct ListNode {

  int val;

  ListNode *next;

  ListNode(int x) : val(x), next(NULL) {}

};

这个结构体包含一个整数类型的val,表示节点的值,还有一个指向下一个节点的指针类型的next。其中,构造函数是为了方便创建节点时初始化val和next。

接下来,我们可以在main函数中编写一个叫做createList的函数来实现尾插法建立单链表。该函数的输入参数为一个int类型的数组a和该数组的长度n,其返回值是一个指向链表头节点的指针。

下面是createList函数的实现代码:


ListNode* createList(int a[], int n) {

  ListNode *head = new ListNode(0);

  ListNode *tail = head;

  for (int i = 0; i < n; ++i) {

    ListNode *node = new ListNode(a[i]);

    tail->next = node;

    tail = tail->next;

  }

  return head->next;

}

该函数首先创建一个虚拟头节点head,并用tail指针指向该节点。然后,遍历数组a,创建一个包含当前元素值的节点node,并将该节点插入到尾节点后面。每次插入完成后,将尾节点指针tail指向新插入的节点。最后,返回head指针的下一个节点,也就是真正的链表头节点。

最后,在main函数中,可以使用以下代码来调用createList函数,并输出链表的所有节点值:


int a[] = 4;

int n = sizeof(a) / sizeof(int);

ListNode *head = createList(a, n);

while (head != NULL)

  cout << head->val << " ";

  head = head->next;

cout << endl;

该代码创建了一个包含5个元素的数组a,然后调用createList函数来建立单链表。最后,使用while循环遍历链表的所有节点,并输出其值。

通过本文的介绍,相信大家已经掌握了使用C++实现尾插法建立单链表的方法。当然,这只是单链表操作中的一个小小的片段,读者可以继续深入学习链表数据结构的相关知识。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复