C++不使用头结点创建单链表,并实现删除某个结点的功能

博客主要围绕C++展开,介绍了单链表相关函数的实现,包括头部声明、主函数、删除函数、输出函数以及使用头插法创建单链表等内容,聚焦于信息技术领域的C++编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头部声明如下

#include <iostream>
#include <malloc.h>
using namespace std;
typedef int ElemType;
typedef struct LNode{
    ElemType data;//存放数据元素值
    struct LNode *next;
}LinkNode;

以下是主函数:

int main(){
	ElemType a[5]={1,4,8,3,5};//定义ElemType类型的数组 
	LinkNode *L;
	int x;//要删除的值 
	Create_LinklistHead(L,a,5);//创建不带头结点的单链表 
	Display(L);//输出单链表 
	cout<<endl;
	cout<<"输入你想要删除的值:";
	cin>>x;
	Del_X_3(L,x);//删除单链表的函数 
	Display(L);
	return 0;
}

 删除函数如下:

void Del_X_3(LinkNode *&L,ElemType x){
	LinkNode *p;
	if(L==NULL) return;
	if(L->data==x){
		p=L;
		L=L->next;
		free(p);
		Del_X_3(L,x);
	}
	else
		Del_X_3(L->next,x);
}

输出函数如下:

void Display(LinkNode *&L){
	LinkNode *p=L;
	while(p!=NULL){
		cout<<p->data<<" ";
		p=p->next;
	}
}

头插法创建单链表:

void Create_LinklistHead(LinkNode *&L,ElemType a[],int n)//采用头插法 
{
	int i;
	LinkNode *q;      
	L=NULL;   
	for(i=0;i<n;i++)
	{
		q=(LinkNode *)malloc(sizeof(LinkNode));//生成新节点
		q->data=a[i];           
		q->next=L;                       //将L所指向的地址赋给新生成的节点指针 
		L=q;                             //头指针指向新生成节点 
	}
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值