早教吧作业答案频道 -->其他-->
写出算法已知线性表中的元素以值递增的有序排列,并以单链表做存储结构,是写一高效的算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素)
题目详情
写出算法
已知线性表中的元素以值递增的有序排列,并以单链表做存储结构,是写一高效的算法,删除表中所有值大于mink且小于maxk的 元素(若表中存在这样的元素)
已知线性表中的元素以值递增的有序排列,并以单链表做存储结构,是写一高效的算法,删除表中所有值大于mink且小于maxk的 元素(若表中存在这样的元素)
▼优质解答
答案和解析
// hello,enjoy it
1.假设单链表的节点数据结构为
struct node
{
TYPE data;
node* pnext;
};
2.假设链表的第一个节点的指针为first.
3.删除不在范围内的节点的方法如下:
node* tmp;
//首先删除不在范围内的第一个节点
while(first->data>mink||first->->datanext; //新的第一个节点
delete tmp;
}
//遍历后面的节点
node* pprenode = first; //当前节点的前一个节点.
for(node* pcurrentnode=first->next;pcurrentnode != null;node* pcurrentnode = pcurrentnode->next)
{
if(pcurrentnode->data>mink||pcurrentnode->datanext;
pcurrentnode = pprenode; //更新当前节点,原来的当前节点被删除了!
delete pcurrentnode;
}
pprenode = pcurrentnode; // 记录当前节点的指针,
}
//注意的问题,在实际编程时防止指针访问越界,这里没有仔细考虑这个问题.^^
1.假设单链表的节点数据结构为
struct node
{
TYPE data;
node* pnext;
};
2.假设链表的第一个节点的指针为first.
3.删除不在范围内的节点的方法如下:
node* tmp;
//首先删除不在范围内的第一个节点
while(first->data>mink||first->->datanext; //新的第一个节点
delete tmp;
}
//遍历后面的节点
node* pprenode = first; //当前节点的前一个节点.
for(node* pcurrentnode=first->next;pcurrentnode != null;node* pcurrentnode = pcurrentnode->next)
{
if(pcurrentnode->data>mink||pcurrentnode->datanext;
pcurrentnode = pprenode; //更新当前节点,原来的当前节点被删除了!
delete pcurrentnode;
}
pprenode = pcurrentnode; // 记录当前节点的指针,
}
//注意的问题,在实际编程时防止指针访问越界,这里没有仔细考虑这个问题.^^
看了 写出算法已知线性表中的元素以...的网友还看了以下:
已知集合M具有性质:若A属于M,则2A属于M,现已知-1属于M,则下列元素一定在M中的A-0.5B0 2020-03-30 …
已知集合M具有性质:若A属于M,则2A属于M,现已知-1属于M,则下列元素一定在M中的A-0.5B0 2020-03-30 …
在平面直角坐标系中,A(4,0),B(0,-4),C(0,4),点M为射线OA上A点右侧一动点在平 2020-05-13 …
..椭圆C:x2/4+ y2=1 M(0,-1) 直线l:y=kx+m与椭圆C相交与不同的两点A、 2020-05-16 …
设函数{an}的前n项和为Sn,且Sn=n²;,数列{bn}满足bn=an/an+m,m∈N是否存 2020-05-16 …
一道直线方程题,设直线系M:xcosθ+(y-2)sinθ=1(0≤θ≤2π),对于下列四个命题: 2020-05-23 …
常温下,某溶液M中存在的离子有:Na+、A2-、HA-、H+、OH一,存在的分子有H2A、H2O. 2020-05-23 …
常温下,某水溶液M中存在的离子有:Na+、A-、H+、OH-.若该溶液M由pH=3的HA溶液V1m 2020-07-25 …
(13分)常温下,某水溶液M中存在的离子有:Na+、A2-、HA-、H+、OH-,存在的分子有H2 2020-07-26 …
双曲线x^2-y^2/4=1,过点M(1,1),是否存在直线l与双曲线交于AB两点,使AB的中点为 2020-07-26 …