我是靠谱客的博主 忐忑哈密瓜,最近开发中收集的这篇文章主要介绍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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部