主题:我是刚开始学数据结构的!要完整的代码,直接可以运行的!!!
程序1
已知一个线性表,用另辟空间和利用原表两种方法把线性表逆置。
设计要求:在程序中构造三个子程序分别为
SeqList reverse(SeqList A) /*顺序表的就地逆置 */
void ListTraverse(SeqList L) /* 遍历顺序表 */
SeqList create(int n) /* 建立顺序表 */
程序2
已知两个非递减有序的线性表LA和LB,将LA和LB合并成一个线性表LC,LC也非递减有序。
设计要求:在程序中构造三个子程序分别为
SeqList MergeSeqList(SeqList La,SeqList Lb) /*合并顺序表*/
void ListTraverse(SeqList L) /* 遍历顺序表 */
SeqList create() /* 建立顺序表 */
程序3
已知两个非递减有序的线性表LA和LB,长度分别为m和n,假设LA的空间足够大,利用原表LA,将LA和LB合并成一个仍然非递减有序的线性表。要求时间复杂度为O(m+n)。
设计要求:在程序中构造三个子程序分别为
SeqList MergeSeqList(SeqList La,SeqList Lb,int m,int n)
/*合并顺序表*/
void ListTraverse(SeqList L) /* 遍历顺序表 */
SeqList create() /* 建立顺序表 */
程序4
约瑟夫环问题:任给正整数N和K,按下述方法可以得到1,2, …,n的一个置换,将数字1,2,…,n环形排列,按顺时针方向自1开始报数,报到K时输出该位置上的数字,并使其出列。然后从他在顺时针方向的下一个数字继续报数,如此下去,直到所有的数字全部出列为止。例如N=10,K=3,则正确的出列顺序应为3,6,9,2,7,1,8,5,10,4。
设计要求:在程序中构造一个子程序为
void Js(int n,int k) /*按正确的输出次序输出约瑟夫环中的元素
已知一个线性表,用另辟空间和利用原表两种方法把线性表逆置。
设计要求:在程序中构造三个子程序分别为
SeqList reverse(SeqList A) /*顺序表的就地逆置 */
void ListTraverse(SeqList L) /* 遍历顺序表 */
SeqList create(int n) /* 建立顺序表 */
程序2
已知两个非递减有序的线性表LA和LB,将LA和LB合并成一个线性表LC,LC也非递减有序。
设计要求:在程序中构造三个子程序分别为
SeqList MergeSeqList(SeqList La,SeqList Lb) /*合并顺序表*/
void ListTraverse(SeqList L) /* 遍历顺序表 */
SeqList create() /* 建立顺序表 */
程序3
已知两个非递减有序的线性表LA和LB,长度分别为m和n,假设LA的空间足够大,利用原表LA,将LA和LB合并成一个仍然非递减有序的线性表。要求时间复杂度为O(m+n)。
设计要求:在程序中构造三个子程序分别为
SeqList MergeSeqList(SeqList La,SeqList Lb,int m,int n)
/*合并顺序表*/
void ListTraverse(SeqList L) /* 遍历顺序表 */
SeqList create() /* 建立顺序表 */
程序4
约瑟夫环问题:任给正整数N和K,按下述方法可以得到1,2, …,n的一个置换,将数字1,2,…,n环形排列,按顺时针方向自1开始报数,报到K时输出该位置上的数字,并使其出列。然后从他在顺时针方向的下一个数字继续报数,如此下去,直到所有的数字全部出列为止。例如N=10,K=3,则正确的出列顺序应为3,6,9,2,7,1,8,5,10,4。
设计要求:在程序中构造一个子程序为
void Js(int n,int k) /*按正确的输出次序输出约瑟夫环中的元素