单链表的创建,插入及删除(更新ing)

1.单链表创建

ptr为头指针,指向头结点地址,即该指针变量的值为头结点地址;

mov为一个辅助指针,用于将链表尾节点的指针域next指向新增节点的地址.

search为一个辅助指针,用于遍历链表各节点地址,打印各节点数据;

根据上面思路,创建一个所示单链表,代码如下:

cpp 复制代码
#include <stdio.h>
#include <stdlib.h>
#define Length 10

typedef struct Node{
	int data;
	struct Node* next;
}Node;
void create_link(Node*,Node*); 
void print_link(Node*);
int main()
{
    Node* ptr = NULL;//定义头指针;
	Node* Head = (Node*)malloc(sizeof(Node));//定义头结点	
	Head->data = 0, Head->next = NULL;//头结点初始化,此处数据不使用,也可以保存链表的长度;


	for(int i=1;i<=Length;i++)
    {
		Node* newNode = (Node*)malloc(sizeof(Node));

		newNode->data = i * 10; newNode->next = NULL;
		create_link(Head,newNode);
	}
	print_link(Head);
}

void create_link(Node* Head, Node* newNode)
{

	Node* mov = NULL; mov = Head;//定义辅助指针指向头结点
	while(mov->next!=NULL)
    {			
		mov = mov->next;
	}

	mov->next = newNode;//链表最后一个节点指针域指向新节点地址,即链表连接新节点
}

void print_link(Node* Head)
{
    Node* search=Head->next;//辅助指针search指向首元结点
	int d=1;
	while(search!=NULL)
    {
		printf("Node[%d]= %d\n",d, search->data);
		search = search->next;
    	d++;
    }
}
相关推荐
noipp1 小时前
推荐题目:洛谷 P5843 [SCOI2012] Blinker 的噩梦
c语言·数据结构·c++·算法·游戏·洛谷·luogu
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-20 打印九九口诀表(C语言实现)
c语言·开发语言·数据结构·算法
红叶舞2 小时前
基于线段树的数据结构
数据结构·python·算法
断点之下3 小时前
从“理扑克牌”到“分组优化”——直接插入排序与希尔排序详解
数据结构·算法·排序算法
起个破名想半天了3 小时前
算法与数据结构之DFS深度优先遍历
数据结构·算法·深度优先
鱼子星_4 小时前
【C++】深入剖析list:list及其双向迭代器实现
开发语言·数据结构·c++·笔记·stl·list
江屿风5 小时前
【C++笔记】【二叉搜索树】流食般投喂
开发语言·数据结构·c++·笔记
爱吃提升13 小时前
MATLAB矩阵运算完全指南:从生成到索引操作
数据结构·matlab·矩阵
小蒋学算法14 小时前
算法-M个非重叠子数组最大和II-WQS二分学习
数据结构·学习·算法
神明不懂浪漫20 小时前
【第三章】链表
开发语言·数据结构·经验分享·笔记·链表