首页 > 其他分享 >单链表删除相同的元素

单链表删除相同的元素

时间:2024-03-24 18:00:00浏览次数:21  
标签:Status 单链 LNode 删除 int ElemType 元素 next LinkList

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

#define error -1
#define ok 1
typedef int Status;
typedef int ElemType;
typedef struct LNode
{
	ElemType data;
	LNode *next;
}LNode,*LinkList;

Status CreateList (LinkList &L,int n);
Status PrintList(LinkList L);
 void DeleList(LinkList &L,ElemType e);

int main()
{
	LinkList L; 
	ElemType e;
	int n;
	cout<<"请输入数据个数:";
	cin>>n;
	CreateList(L,n);
	cout<<"请输入要删除的元素";
	cin>>e;
	DeleList(L,e); 
}
Status CreateList(LinkList &L,int n)
{
	L=new LNode;
	L->next=NULL;
	LNode *p;
	LNode *r=L;
	for(int i=0;i<n;++i)
	{
		p=new LNode;
		cin>>p->data;
		p->next=NULL;
		r->next=p;
		r=p;
	
	}	
}
 void DeleList(LinkList &L,ElemType e) 
 {
 	
 	LNode *q; 
 	LNode *p;
 	p=L;int j=0;
	while(p->next!=NULL)
	{
		if(p->next->data==e)
		{
			q=p->next;
			p->next=q->next;
			delete q;
		}
		else	p=p->next;
	}
	PrintList(L);//输出结果 		
}
               
Status PrintList(LinkList L)
{
	LNode* p = L->next;    
    while (p != NULL) 
	{    
        cout << p->data <<" ";    
        p=p->next;    
    }    
    cout << endl; 
	return ok;
}

标签:Status,单链,LNode,删除,int,ElemType,元素,next,LinkList
From: https://blog.csdn.net/2302_80440382/article/details/136935909

相关文章

  • [暴力题解系列]2023年蓝桥杯-整数删除(30分)
    这题暴力最多30分,但是30分也是分,做暴力的人不能贪心,拿到分就是赚了。​ 这题核心烦人点在于他数据分层断崖,就只有前3个点能做到稳过。用的思路就是链表,但不是用指针存的,而是用数组下标为标记存的,只是我觉得因为这样好写一些。链表方便修改左右连接位置,所以越到后面就越能省下查询......
  • 关于Macbook错误方式删除登录用户,无法清除废纸篓
    近期我在删除mac上用户列表的某个用户时,发现在账户与群组中删除后,在访达的用户目录还存在那个用户的文件夹,遂将其拖进废纸楼然后惊奇的发现,这个文件夹无法清除,说正在使用Library之类的报错,由于没有什么办法,遂不管他但是麻烦来了,在这之后的每一次倾倒废纸篓,我都会遇到这个问题......
  • TreeMap从添加第二个元素开始,需要进行排序,原始类继承Comparable<Student>接口实现comp
    重写compareTo方法,关于o的理解@OverridepublicintcompareTo(Studento){//关于o,是红黑树中从第二个开始进入的元素,需//要和已存在的元素比较,该o是在第二个add//调用时,传入这里的Student对象。//根据题设,先用年龄排序in......
  • C# list删除报错 使用for循环倒序删除
    C#list删除报错在C#中,如果您在遍历List的同时尝试删除元素,可能会遇到错误。因为这会改变List的结构,导致枚举器失效。解决方法:使用for循环倒序删除:点击查看代码for(inti=list.Count-1;i>=0;i--){if(/*条件*/){list.RemoveAt(i);}}......
  • 在Linux中,如何在Linux下移动、复制和删除文件或目录?
    在Linux系统中,移动、复制和删除文件或目录的操作主要通过命令行工具完成,以下是具体命令和用法:1.移动文件或目录(mv)移动单个文件:mvoldfilenewfile此命令会将文件oldfile改名为newfile,相当于在同一个目录内重命名文件。如果你想将文件移动到另一个目录中:mvoldfile/pa......
  • SCHTASKS命令参数 :允许管理员在本地或远程系统上创建、删除、查询、更改、运行和结束
    C:\Windows\System32\Tasks文件夹下的XML文件是用来存储Windows操作系统中计划任务的信息的。Windows操作系统通过这些XML文件来管理和存储各种预定的任务,例如定时备份、系统维护、自动更新等。这些任务可以在特定的时间或事件发生时自动执行,而XML文件则包含了这些任务的配置信......
  • 实验:基于Red Hat Enterprise Linux系统在终端使用vim进行拷贝、删除、查找、替换、保
    目录一.实验目的二.实验内容三.实验设计描述及实验结果        一.vim文本编译器模式切换:    命令模式:        输入模式:        末行模式:        二.复制、删除:        三.查找字符串:        四.替换:......
  • 线性表的单链表
    目录1>.单链表的定义和表示2>.单链表基本操作1.初始化2.取值3.查找4.插入5.删除1>.单链表的定义和表示1.基本概念特点:用一组任意的存储单元存储线性表的数据元素(存储单元可以连续,也可以不连续)。对数据元素ai,存储本身的信息和一个指示直接后继的存储位置,这两部分信......
  • 03天【代码随想录算法训练营34期】第二章 链表part01(203.移除链表元素 、707.设计链表
    203.移除链表元素竟然可以做个假head,学到了classListNode(object):def__init__(self,val=0,next=None):self.val=valself.next=nextclassSolution(object):defremoveElements(self,head,val):dummy_head=ListNode(-1)......
  • 740. 删除并获得点数
    给你一个整数数组nums,你可以对它进行一些操作。每次操作中,选择任意一个nums[i],删除它并获得nums[i]的点数。之后,你必须删除所有等于nums[i]-1和nums[i]+1的元素。开始你拥有0个点数。返回你能通过这些操作获得的最大点数。主要思路:其实这道题是打家劫舍的变......