1、 设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法:① 找出最小值结点,且打印该
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/27 03:08:27
1、 设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法:① 找出最小值结点,且打印该
用C语言编写.
1、 设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法:
① 找出最小值结点,且打印该数值;
② 若该数值是奇数,则将其与直接后继结点的数值交换;
③ 若该数值是偶数,则将其直接后继结点删除;
需要具体的代码.
用C语言编写.
1、 设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法:
① 找出最小值结点,且打印该数值;
② 若该数值是奇数,则将其与直接后继结点的数值交换;
③ 若该数值是偶数,则将其直接后继结点删除;
需要具体的代码.
ListOp_N(LinkList list){//本算法功能是找出正整数单链表list中的最小值结点;
//并在此结点数值是奇数时,把它与其后继结点交换
//在此结点数值是偶数时,把其直接后继结点删除
q=list;
p=q;
while !q { //第一部分:找出最小值结点p,并打印p结点数值
if p->data>q->data p=q;
q=q->next;}//while
printf("%d",p->data);
if odd(p->data){ //第二部分:如果是奇数则交换,odd()是判奇函数
if !(p->next) {q=list; //重新确定p的位置及其前驱q
while ( q->next!=p ) q=q->next;
r=p->next; //引入临时变量r,用于保存p的后继q->next=r; //修改p的前驱p->next=r->next; //修改p的后继r->next=p; //修改r的后继
}//if
}
else{ //第三部分:如果是偶函数,则删除后继结点
if !(p->next) { r=p->next;
p->next=r->next; //改变p的后继指针
free(r); //删除p的原后继结点}//if
}//if
}// ListOp_N
//并在此结点数值是奇数时,把它与其后继结点交换
//在此结点数值是偶数时,把其直接后继结点删除
q=list;
p=q;
while !q { //第一部分:找出最小值结点p,并打印p结点数值
if p->data>q->data p=q;
q=q->next;}//while
printf("%d",p->data);
if odd(p->data){ //第二部分:如果是奇数则交换,odd()是判奇函数
if !(p->next) {q=list; //重新确定p的位置及其前驱q
while ( q->next!=p ) q=q->next;
r=p->next; //引入临时变量r,用于保存p的后继q->next=r; //修改p的前驱p->next=r->next; //修改p的后继r->next=p; //修改r的后继
}//if
}
else{ //第三部分:如果是偶函数,则删除后继结点
if !(p->next) { r=p->next;
p->next=r->next; //改变p的后继指针
free(r); //删除p的原后继结点}//if
}//if
}// ListOp_N
建立一个无序链表,每个结点包含:学号、姓名、年龄、C语言成绩.由一个函数完成建立链表的工作,另一个函数完成输出链表上各结
用C#语言编写:输入一个正整数n,程序打印出该整数的所有约数(不包括1和该整数本身)使用for循环语句
编写算法:已知二叉排序树按二叉链表形式存储,树中结点各不相同,欲得到一个由小到大的结点值递增序列
1.设有n 个整数组成的序列存放于一个带头结点的单链表中,HEAD为头指针.每个整数为-1,0,1之一.编写一个时间复杂
已知指针ha和hb分别指向两个单链表的头结点,编写一个算法,将ha和hb连接在一起,即令其中一个表的首结点
输入一个任意6位正整数,求出由该数各位数字组成的最大值和最小值.
定义一个Print函数,利用循环语句完成打印功能,主函数main调用该函数,完成下列打印功能:打印出N行N列星
试编写算法,对连续输入的n个整数,找出其中最大值和最小值(
有一个循环单链表的长度大于1,表中既无头结点也无头指针.S为指向链表中某结点的指针,写算法,删除结点S
假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针.已知s为指向链表中第s个元素,试编写算法
试写出一个计算链表中结点个数的算法.其中指针p指向该链表的第一个结点
编写一个程序,输入两个正整数,打印出这两个整数的和、差、积、商.