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

作者&投稿:衡爬 (若有异议请与网页底部的电邮联系)
设计将所有奇数移到所有偶数之前的算法~

设n个数保存在数组A中
i=0;
j=n-1;
(1)当i<j时
循环执行:i++,直到a[i]是偶数或i>j
循环执行:j--,直到a[j]是奇数或i>j
(2)
如果i<j 那么交换a[i]和a[j],转(1)

(3)输出,结束

while(A.data[k]%2==0) 改成while(k<=j&&A.data[k]%2==0)
while(A.data[k]%2==1) 改成while(k<=j&&A.data[j]%2==0)

算法可以这样来:
遍历整个链表,遇到奇数的结点就插入到头结点位置,这样遍历完之后整个顺序表中的奇数结点就都在偶数结点之前了。

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;
}
}

通过两个指针,分别指向表头和表尾,从表头开始判断,遇到数就判断表尾是否为奇数,若是,则交换,并且指针移动,若不是,则表尾指针移动,继续判断


设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置...
你好。很幸运看到你的问题。但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。对于你的问题我爱莫能助!可能是你问的问题有些专业了。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较...

编写一个算法,将顺序表A(有n个元素,且各元素均不为0)拆分成两个顺序表...
int create(sqlist a) \/\/创建一个顺序表,返回表中含有元素个数的值n { int n,i;cout<<"输出一个顺序表:"<<endl;cout<<" 输入元素的个数:"<<endl;cin>>n;for(i=0;i<n;i++){ cout<<" 输入第"<<i+1<<"个元素的值:"<<endl;cin>>a[i];} return n;} void d...

已知长度为n的线性表A采用顺序存储结构,请写一算法,找出该线性表中值...
【答案】:(1)数据结构 采用顺序表定义。(2)思路 设置变量min,遍历整个表,不断更新当前已经遍历过的元素的最小值即可。为方便起见,事先假设表不为空。(3)算法 DataType min_seq(PSeqList palist){ \/*求非空顺序表中的最小数据元素*\/ DataType min;inti;min=palist->element[0]; \/*...

设顺序表A中的数据元素递增有序试写一程序将x插入到顺序表的适当位置上...
设顺序表A中的数据元素递增有序试写一程序将x插入到顺序表的适当位置上使该表仍然有序 要求在C环境下编译  我来答 1个回答 #热议# 【答题得新春福袋】你的花式拜年祝福有哪些?Ellaend 2013-01-16 知道答主 回答量:30 采纳率:0% 帮助的人:11.9万 我也去答题访问个人页 关注 展开全部 ...

已知一个顺序表L,打印输出顺序表第i个元素的值,写出完整的算法_百度知 ...
system("pause");return 0;} int getelem(Linklist *L,int i){ Linklist *p;p=L->next;int j=1;while(p&&j<i){ p=p->next;++j;\/\/ } if(!p||j>i){ cout<<"j="<<j<<endl;cout<<p->data;return 0;} cout<<"output data:";printf("%d",p->data);return 1;} ...

现有一顺序表A,试编一算法,把A分成两个顺序表B和C,要求B中所有元素都...
把A按大小排序之后 \/2就行了

设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当...
设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。void inList(SqlList L,int x){if(L.length>=L.listsize) newbase=(ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase)exit(OVERFLOW); L.elem=newbase; L.lis...

汉语拼音声母、韵母表(详细)?
声母表:b [玻] p [坡] m [摸] f [佛]d [得] t [特] n [讷] l [勒] g [哥] k [科] h [喝]j [基] q [欺] x [希]z [资] c[雌] s [思] r [日] zh[知] ch [嗤] sh [诗]y [医] w [巫]韵母表:单韵母  a[阿] o[喔] e[鹅] i[衣] u[乌]...

已知长度为n的线性表A采用顺序存储结构,设计一个算法,使得该线性表中的...
相当于数组的顺序排列

救救吧~已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76...
2 1 3 4 4 对半查找是把已知元素与范围内元素的中间那个元素比较,大于中间元素就把范围锁定在中间元素后面开始的元素,小于就把元素范围锁定中间元素前面的元素 例如查找34:先是在下标0到下标11这12个元素15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 中查找,他们的中间元素是下标...

平乐县17837519109: 已知一顺序表A,表中都是不相等的整数,设计一个算法,把表中所有的奇数移到所有的偶数前面去
范薇钠林: 通过两个指针,分别指向表头和表尾,从表头开始判断,遇到数就判断表尾是否为奇数,若是,则交换,并且指针移动,若不是,则表尾指针移动,继续判断

平乐县17837519109: //已知线性表按照顺序存储,且每个元素都是互不相等的整数,设计把所有奇数移到所有偶数前边的程序; -
范薇钠林: 把上面的0改为1,然后把1改为0

平乐县17837519109: 数据结构的习题(C语言版) -
范薇钠林: 第一个问题,分析下要求,可以知道要做的事情是合并两个数组到一个数组里去,数组C的长度是AB之和.表C的第一个字符不是A的第一个字符就是B的第一个字符.因此接下来要做的事情就是做一个长度为AB之和的循环,每一次找出A或B中...

平乐县17837519109: 如下表,从左到右在每个小格子中都填入一个整数,使得其中任意三个相邻格子中所填整数之和都相等,则第2011个格子中的数为() 3abc - 12… -
范薇钠林:[选项] A. 3 B. 2 C. 0 D. -1

平乐县17837519109: 已知一顺序表A,其元素值非递减有序,编写一个函数删除顺序表中多余的值相同的元素 -
范薇钠林: #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #define MAXN 10000000using namespace std ;int a[MAXN] , n , nsize , tmp[MAXN] ;int cmp( const void * _a , const void * _b ) {int *a = ( int* )_a ;int *...

平乐县17837519109: 已知A,B,C,D,是四个互不相等的整数,且ABCD=9,求A+B+C+D的值 -
范薇钠林: ABCD=9=1*3*3 ABCD是互不相等的整数,因此可以推测出分别为-1,1,-3,3(顺序无关紧要) 所以A+B+C+D=-1+1+(-3)+3=0

平乐县17837519109: 已知a,b,c,d是四个互不相等的整数,且abcd=9求a+b+c+d的值. -
范薇钠林: 因为a,b,c,d是四个互不相等的整数,且abcd=9 所以这四个整数是 -3 、-1 、1 、3 所以 a + b + c + d = (-3) + (-1) + 1 + 3 = 0

平乐县17837519109: Excel中,比如A1=B1.A2=B2,A3=B3,表中都是不规则数字,如何在A列一输入数字,B列就出现对应的数字.详... -
范薇钠林: b1内输入 =a1 下拉复制公式 如何下拉这个链接里学一下 http://hi.baidu.com/1975qjm/album/item/472461f636d12f2e5b16abd84fc2d56284356854.html#

平乐县17837519109: 排列不等式证明,已知a,b,c是不全相等的正数,求证:2(a^3+b^3+c^3)>a^2(b+c)+b^2(a+c)+c^2(a+b). -
范薇钠林: 推广1 如果a、b是正数,那么an+bn≥an-1b+abn-1(n∈N且n≥2)(当且仅当a=b时取“=”号).如果将a2+b2≥2ab写成a2+b2≥a1b1+a1b1,结合a3+b3≥a2b+ab2,略加比较很容易联想到上面的结论.其证明也是很简单的.an+bn-(an-1b+abn-1)=...

平乐县17837519109: 已知一顺序表A,其元素值非递减有序排列,编写一个算法删除顺序表中多余的值相同的元素. -
范薇钠林: SeqList* A; int a[]={1,2,3,3,3,4,4,4,4,5,6,7,8,8,8,9,9}; A=a; A=Delete(A);链表没有初始化. 应该改成: SeqList* A; int a[]={1,2,3,3,3,4,4,4,4,5,6,7,8,8,8,9,9}; A->data = a; A->last = 9; A=Delete(A);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网