数据结构的习题(C语言版)
1.已知有两个按元素值递增有序的顺序表A和B,设计一个算法将表A和表B的全部元素归并为一个按元素值非递减有序的顺序表C。要求:从键盘输入顺序表A和B的各元素,编程实现上述...
1.已知有两个按元素值递增有序的顺序表A和B,设计一个算法将表A和表B的全部元素归并为一个按元素值非递减有序的顺序表C。
要求:从键盘输入顺序表A和B的各元素,编程实现上述算法,输出顺序表A、顺序表B和顺序表C 的所有元素值 。
2.已知线性表A按顺序存储,且每个元素都是互不相等的整数。编程实现把所有奇数移到所有的偶数前边的算法。
要求:(1)时间最少,辅助空间最少;
(2)线性表A的各元素初始值从键盘输入;
(3)输出结果。
本人刚刚接触这门课,感觉好难啊。做题也没思路怎么办啊?求各位指教啊。 展开
要求:从键盘输入顺序表A和B的各元素,编程实现上述算法,输出顺序表A、顺序表B和顺序表C 的所有元素值 。
2.已知线性表A按顺序存储,且每个元素都是互不相等的整数。编程实现把所有奇数移到所有的偶数前边的算法。
要求:(1)时间最少,辅助空间最少;
(2)线性表A的各元素初始值从键盘输入;
(3)输出结果。
本人刚刚接触这门课,感觉好难啊。做题也没思路怎么办啊?求各位指教啊。 展开
2个回答
展开全部
第一个问题,分析下要求,可以知道要做的事情是合并两个数组到一个数组里去,数组C的长度是AB之和。表C的第一个字符不是A的第一个字符就是B的第一个字符。因此接下来要做的事情就是做一个长度为AB之和的循环,每一次找出A或B中的最小元素,存到C里面去,循环结束,C就自动有了。
第二个问题,有时间和空间的要求,不太容易,只有更好,没有最好。不过提供一个思路。可以首先扫描整个数列,将奇数偶数的位置和个数标注出来,存在一个数列中。例如数列奇 奇 偶 奇 奇,可以得到奇数个数为4,位置为[0,1,3,4],偶数为1,位置为[2],因此要生成的数列中前4个必定为奇数,而题目中没有对大小的要求,因此只用将偶数与最后面的奇数对换位置即可。对换的次数即为偶数的个数。
大概思路如此,不过有很多方法可以高效的存储和计算,具体实现,希望你能亲自琢磨下,还可以巩固一下C技巧。
祝好,有问题可以探讨。
第二个问题,有时间和空间的要求,不太容易,只有更好,没有最好。不过提供一个思路。可以首先扫描整个数列,将奇数偶数的位置和个数标注出来,存在一个数列中。例如数列奇 奇 偶 奇 奇,可以得到奇数个数为4,位置为[0,1,3,4],偶数为1,位置为[2],因此要生成的数列中前4个必定为奇数,而题目中没有对大小的要求,因此只用将偶数与最后面的奇数对换位置即可。对换的次数即为偶数的个数。
大概思路如此,不过有很多方法可以高效的存储和计算,具体实现,希望你能亲自琢磨下,还可以巩固一下C技巧。
祝好,有问题可以探讨。
展开全部
第一个问题,分析下要求,可以知道要做的事情是合并两个数组到一个数组里去,数组C的长度是AB之和。表C的第一个字符不是A的第一个字符就是B的第一个字符。因此接下来要做的事情就是做一个长度为AB之和的循环,每一次找出A或B中的最小元素,存到C里面去,循环结束,C就自动有了。
第二个问题,有时间和空间的要求,不太容易,只有更好,没有最好。不过提供一个思路。可以首先扫描整个数列,将奇数偶数的位置和个数标注出来,存在一个数列中。例如数列奇 奇 偶 奇 奇,可以得到奇数个数为4,位置为[0,1,3,4],偶数为1,位置为[2],因此要生成的数列中前4个必定为奇数,而题目中没有对大小的要求,因此只用将偶数与最后面的奇数对换位置即可。对换的次数即为偶数的个数。
大概思路如此,不过有很多方法可以高效的存储和计算,具体实现,希望你能亲自琢磨下,还可以巩固一下C技巧。
第二个问题,有时间和空间的要求,不太容易,只有更好,没有最好。不过提供一个思路。可以首先扫描整个数列,将奇数偶数的位置和个数标注出来,存在一个数列中。例如数列奇 奇 偶 奇 奇,可以得到奇数个数为4,位置为[0,1,3,4],偶数为1,位置为[2],因此要生成的数列中前4个必定为奇数,而题目中没有对大小的要求,因此只用将偶数与最后面的奇数对换位置即可。对换的次数即为偶数的个数。
大概思路如此,不过有很多方法可以高效的存储和计算,具体实现,希望你能亲自琢磨下,还可以巩固一下C技巧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询