我是靠谱客的博主 忐忑哈密瓜,最近开发中收集的这篇文章主要介绍A.8链表练习题——删除数值区间内元素给定min和max删除链表中在其中的元素(包括min和max),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
给定min和max删除链表中在其中的元素(包括min和max)
代码
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
node *next;
}Node;
//给定min和max,要求删除链表中位于min和max之间的数(包括本身),并释放空间
void Creat(Node *L)
{
node *s,*tc=L; //s表示插入元素,tc为尾指针
printf("请输入元素个数n:");
int n,i;
scanf("%d", &n);
while(n--){
s=(Node*)malloc(sizeof(Node));
scanf("%d",&s->data ); //输入元素
tc->next =s; //尾插法
tc=s;
}
tc->next =NULL;
}
void Delete(Node *L,int min,int max) //删除操作(min和max之间(包括))
{
Node *p,*pre; //前后指针
pre=L;
p=pre->next;
while(p != NULL){
if(p->data >= min && p->data <= max){ //当满足条件时
if(p->next == NULL){ //最后一个结点释放后pre后接NULL
pre->next =p->next ; //释放空间
free(p);
pre->next =NULL;
break;
}
pre->next =p->next ;
free(p);
p=pre->next;
continue;
}
pre=pre->next ;
p=p->next ;
}
}
int DisList(Node *L) //打印
{
if(L->next == NULL) return 0; //如果头结点下一个无元素,返回0
node *p=L->next ;
while(p != NULL){ //打印输出
printf("%d ", p->data );
p=p->next ;
}
printf("n");
return 1;
}
int main()
{
Node *L=(Node *)malloc(sizeof(Node));
Creat(L);
Delete(L,1,3);
DisList(L);
return 0;
}
最后
以上就是忐忑哈密瓜为你收集整理的A.8链表练习题——删除数值区间内元素给定min和max删除链表中在其中的元素(包括min和max)的全部内容,希望文章能够帮你解决A.8链表练习题——删除数值区间内元素给定min和max删除链表中在其中的元素(包括min和max)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复