数据结构的一道习题 在带头结点的单链表中删除数据域的值等于a 的结点

初学数据结构,c语言基础不是很好,希望高手不吝赐教,也可以介绍点学习的方法,谢谢... 初学数据结构,c语言基础不是很好,希望高手不吝赐教,也可以介绍点学习的方法,谢谢 展开
 我来答
手机用户51630
2011-03-07 · TA获得超过129个赞
知道答主
回答量:224
采纳率:0%
帮助的人:0
展开全部
从首元(头结点指向的节点)开始,依次查看是此节点的数据否有下一个节点的数据大,如果存在一个节点的数据比下一个节点大,说明不是递增。反之如果考察到最后一个节点之前都比下一个节点小,那么就是递增
如果节点定义如下:
typedef struct LNode{//定义节点类型
ElemType data; //数据域
Struct LNode *next;//指针域
}LNode,*Linklist

算法这样写:
status Judge (Linkedlist l)//表头为l
{int *p,p=l->next;//定义指针变量p,使得p指向首元
if (p-next==NULL||p==NULL) return INFEASIBLE;//如果链表为空,或者仅有一个数据节点,则参数不合法
else {
while (p->next!=NULL&&p->data<p->next-data) p=p->next;//如果p所指的节点的数据小于(如果是非递减就加上等于)p-next所指节点的数据并且p所指的节点不是尾节点,则考察下一个节点,否则终止循环。
if (p-next!=NULL) return NO//如果p节点不是尾节点,说明p节点的数据大于p->next节点数据,即原表中的元素值不是递增
else return YES;//反之,p节点是尾节点则说明所有的节点的数据都比后继节点小,即原表中的元素值递增。
}
}

没有注释的:
status Judge (Linkedlist l)
{int *p,p=l->next;
if (p-next==NULL||p==NULL) return INFEASIBLE;
else {
while (p->next!=NULL&&p->data<p->next-data) p=p->next;
if (p-next!=NULL) return NO
else return YES;
}
}

就这么短。。。不知道上面那哥们怎么做的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式