| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 758 人关注过本帖
标题:在指定区间内删除链表内的节点的问题?
只看楼主 加入收藏
han2y
Rank: 1
来 自:山东德州
等 级:新手上路
帖 子:175
专家分:0
注 册:2006-5-4
结帖率:100%
收藏
 问题点数:0 回复次数:3 
在指定区间内删除链表内的节点的问题?

代码如下:(链表中的元素以值递增有序排列,设计一个算法,删除表中所有值大于mink且小于maxk的元素,同时删除被删节点空间.)
#define NULL 0
typedef char ELEMTYPE;
typedef struct node{
ELEMTYPE data;
struct node *next;
}LNODE,*LINKLIST;


LINKLIST delete(LINKLIST L,char mink,char maxk)
{

LINKLIST p,q,n,m;
int i,j;
p=L;
if(p->next=NULL)
printf("表中无数据");
while(p->next->data>=maxk)
{
p=p->next;

if(p->data>=mink)

{ q=p;
n=p->next;
i=0;
}
else if(p->next=NULL)
{printf("无满足要求的数据");
exit(0);
}
i++;
}
q->next=p->next;
for(j=0;j<i;j++)
{ m=n->next;
free(n);
n=m;
}

}

不知对不对?请指教……

搜索更多相关主题的帖子: 链表 节点 删除 
2006-08-26 17:12
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

沒看其他的,
只看了
if(p->Next=NULL)
這個等號是你有意的嗎, 下同.
----------------------------------------


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-26 19:28
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
您的链表知识比您其他方面的知识相比略有欠缺,
您的程序有较多的错误,所以建议您先看看书。
LNODE* del(LNODE* head,char min,char max)
{
LNODE *p=head,*q=NULL,*pt=NULL;
for(;p->data<=min;q=p,p=p->next);
if(p!=head)
for(;p->data<max;pt=p->next,free(p),q->next=pt,p=pt);
else
for(;head->data<max;p=head->next,free(head),head=p);
return head;
}

上面是简单的写法,考虑也有不周.但体现了思路,您可以参考下。
另外,我发现您老是犯一个毛病,总爱把==写成=,您以后可以多注意下。

对不礼貌的女生收钱......
2006-08-26 19:30
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-26 19:39
快速回复:在指定区间内删除链表内的节点的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016839 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved