已知一顺序表A,表中都是不相等的整数,设计一个算法,把表中所有的奇数移到所有的偶数前面去

谁知道的,快告诉我啊,急急急!!!!!!!... 谁知道的,快告诉我啊,急急急!!!!!!! 展开
 我来答
Soucula
2013-04-01 · TA获得超过3093个赞
知道小有建树答主
回答量:744
采纳率:93%
帮助的人:133万
展开全部
算法可以这样来:
遍历整个链表,遇到奇数的结点就插入到头结点位置,这样遍历完之后整个顺序表中的奇数结点就都在偶数结点之前了。

void MoveOdd(List **A)
{
List *p = *A, *tmp;
if (A == NULL || *A == NULL) //链表为空不用处理
return;
while(p->next != NULL) //第一个数是否是奇数不要紧,因为它会处于奇数与偶数序列之间
{
if (p->next->data % 2 == 1)
{
tmp = p->next;
p->next = p->next->next;
tmp->next = *A;
*A= tmp;
continue;
}
p = p->next;
}
}
匿名用户
2013-04-02
展开全部
通过两个指针,分别指向表头和表尾,从表头开始判断,遇到数就判断表尾是否为奇数,若是,则交换,并且指针移动,若不是,则表尾指针移动,继续判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式