首页 > 其他分享 >尾插法新建链表

尾插法新建链表

时间:2024-05-06 16:45:02浏览次数:24  
标签:插法 head 新建 next 链表 tail NewNode element LinkList

核心代码:

tail = head;  
s->next = NULL;  
tail->next = s;  
tail = s;

插入过程演示:

![[Pasted image 20230623143820.png]]

头插法尾插法新建链表完整代码

#include <iostream>
#include<malloc.h>
using namespace std;

typedef int Elemtype;
typedef struct LNode {
	Elemtype data;
	struct LNode* next;
}LNode,*LinkList;
void link_head_list(LinkList& head)
{
	head = (LinkList)malloc(sizeof(LNode));
	head->next = NULL;
	LNode* NewNode;
	int element;
	cin >> element;
	while (element != -1)
	{
		NewNode = (LinkList)malloc(sizeof(LNode));
		NewNode->data = element;
		NewNode->next = head->next;
		head->next = NewNode;
		cin >> element;
	}
}
void link_tail_list(LinkList& head)
{
	head = (LinkList)malloc(sizeof(LNode));
	head->next = NULL;
	LNode* NewNode, * tail;
	int element;
	tail = head;
	cin >> element;
	while (element != -1)
	{
		NewNode = (LinkList)malloc(sizeof(LNode));
		NewNode->data = element;
		NewNode->next = NULL;
		tail->next = NewNode;
		tail = NewNode;
		cin >> element;
	}
	
	tail->next = NULL;
}
void printlink(LinkList& L)
{
	L = L->next;
	while (L != NULL)
	{
		cout << L->data << " ";
		L = L->next;
	}
}
int main()
{
	LinkList A, B;
	cout << "请输入链表A,以-1结尾:";
	link_head_list(A);
	cout <<endl<<"以头插法建立的该链表为:";
	printlink(A);
	cout <<endl<< "请输入链表B,以-1结尾:";
	link_tail_list(B);
	cout <<endl<< "以头插法建立的该链表为:";
	printlink(B);
	return 0;
}

标签:插法,head,新建,next,链表,tail,NewNode,element,LinkList
From: https://www.cnblogs.com/gqy9521/p/18175325

相关文章

  • kiCad新建符号库(系统自带封装库)
    软件版本:KiCad8.01打开软件,选择工程,并打开原理图:2点击符号编辑器:3新建符号搜索XL,在Regulator_Switching(稳压器开关)一栏中已有一部分XL系列的稳压芯片:在此基础上新建一个XL7056的降压型DC-DC转换器,右键,选择新建符号:输入新建的符号名:此时,在Regulator_Switching(稳......
  • EPAI手绘建模APP新建模型1
    (6) 新建模型图 175 新建模型工具栏-1图 176 新建模型工具栏-2① 新建模型工具栏包括一些建模过程中常用的工具,一般是基于现有模型创建一个或多个新的模型,同样是分步骤完成建模过程。② 挖空模型,选择实体上的面;设置挖空后连接类型,连接类型包括圆弧、相切、相交;挖空后......
  • EPAI手绘建模APP新建模型2
    ⑪ 中轴线,依次选择两条边,在两条边中轴处生成一条新的边。图 187 中轴线⑫ 投影点,选择一个点;选择一条边或者一个面。将点投影到边或者面上,生成新的点。图 188 投影点-1图 189 投影点-2图 190 投影点-3⑬ 投影曲线,选择一条边;选择一个面。将边投影到面上,打开设......
  • 考研打卡链表,栈,队列
    1:链表点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedefstructnode{ intdata; structnode*next;}listnode,*list1;typedefstructnow{ intdata; structnow*next,*prve;}listnow,*list2;boollistn(list1&L,intx,inty){ if(x&l......
  • vscode 新建、合并分支
    vscode1.88.1(2024-04-10)gitea-1.20-gogit-windows-4.0-amd64Windows11--- 序章本文演示自己用的VisualStudiocode1.88.1中:新建分支合并分支两个操作。 说明,本文仅展示了在自己的开发环境,单人操作。团队多人操作时,应该还有下拉、解决冲突、提交等需要处......
  • 力扣-430. 扁平化多级双向链表
    1.题目题目地址(430.扁平化多级双向链表-力扣(LeetCode))https://leetcode.cn/problems/flatten-a-multilevel-doubly-linked-list/题目描述你会得到一个双链表,其中包含的节点有一个下一个指针、一个前一个指针和一个额外的子指针。这个子指针可能指向一个单独的双向链表,也......
  • 力扣-82. 删除排序链表中的重复元素
    1.题目题目地址(82.删除排序链表中的重复元素II-力扣(LeetCode))https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/题目描述给定一个已排序的链表的头 head, 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回已排序的链表 。 示例1:......
  • 力扣-83. 删除排序链表中的重复元素
    1.题目题目地址(83.删除排序链表中的重复元素-力扣(LeetCode))https://leetcode.cn/problems/remove-duplicates-from-sorted-list/题目描述给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回已排序的链表 。 示例1:输入:head=[1,1......
  • 双向链表及双向循环链表接口设计
    双向链表及双向循环链表接口设计双向链表接口设计由于带头结点更加方便用户进行数据访问,所以本次创建一条带头结点的双向不循环的链表。创建新的头结点和新节点//数据类型typedefintdatatype_t;//创建结点类型typedefstructdoublelinckelist{datatype_tdata;......
  • 双向链表及双向循环链表接口设计
    双向链表及双向循环链表接口设计双向链表接口设计由于带头结点更加方便用户进行数据访问,所以本次创建一条带头结点的双向不循环的链表。创建新的头结点和新节点``//数据类型`typedefintdatatype_t;//创建结点类型typedefstructdoublelinckelist{datatype_tdata;//......