教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

西电机电院自动化专业软件技术基础上机报告(3)

来源:网络收集 时间:2026-04-10
导读: 班级:041132 学号:04113*** 姓名: 当输入为ABCD@E@# 班级:041132 学号:04113*** 姓名: 六、 带注释的源程序 第一题: /******************************************************************** 设有一个由正

班级:041132 学号:04113*** 姓名:

当输入为ABCD@E@#

班级:041132 学号:04113*** 姓名:

六、 带注释的源程序

第一题:

/******************************************************************** 设有一个由正整数组成的无序单链表,编写完成下列功能的算法: ① 找出最小值结点,且打印该数值;

② 若该数值是奇数,则将其与直接后继结点的数值交换; ③ 若该数值是偶数,则将其直接后继结点删除。

********************************************************************/ #include #include #include

typedef struct node /*结点声明*/ {

int data;

struct node *next; }linklist;

linklist *head,*p;

/*使用尾插法建立单链表,并且以‘0’作为结束符*/ linklist *CREAT() {

int data1;

linklist *head,*s,*r;

head=(linklist*)malloc(sizeof(linklist)); r=head;

printf(\scanf(\while(data1!=0)

{s=(linklist*)malloc(sizeof(linklist)); s->data=data1; r->next=s; r=s;

scanf(\r->next=NULL; return head; }

/*打印当前链表的所有结点数值*/

void PRINT(linklist *head) /*打印单链表*/ {

班级:041132 学号:04113*** 姓名:

linklist *p; int j=0;

p=head->next; while(p!=NULL) { j++;

printf(\ p=p->next;} }

/*找到当期单链表中的最小值,并且将该最小值打印出来*/ linklist *SEARCH(linklist *head) {

linklist *p,*s; p=s=head->next;

while(p->next!=NULL) {

p=p->next;

if((p->data)<(s->data)) s=p; }

printf(\:%d\\n\ return s; }

/*删除当前结点*/

void DELETE(linklist *head,linklist *p) /*删除结点p*/ {

linklist *q; q=head->next; while(q->next!=p) q=q->next; q->next=p->next; }

/*将当前结点和其后面的结点进行交换*/ void EXCHANG(linklist *p)

班级:041132 学号:04113*** 姓名:

{

int x; x=p->data;

p->data=(p->next)->data; (p->next)->data=x; }

int main() {

linklist *head,*p,*q;

head=CREAT(); //使用尾插法建立链。 printf(\打印当前链表。 PRINT(head);

p=SEARCH(head); //查找最小值结点。 q=p->next;

if(p->data%2==1)

EXCHANG(p);//如果最小值为奇数,则将最小值结点与其后继结点交换 else

DELETE(head,q); //如果最小值为偶数,则删除后继结点。 printf(\ PRINT(head); return 1; }

第二题:

/******************************************************************** 编一程序:①建立一个数据域为1至10的带头结点的链表; ②将此链表就地逆转。

********************************************************************/ #include #include #include typedef int datatype; typedef struct node {

datatype data; struct node *next;

}linklist; //定义结点结构体。 linklist *head,*p; //对结点进行声明。

班级:041132 学号:04113*** 姓名:

/*使用尾插法建立带有头结点的链表。*/ linklist *CREATLSTER() {

int a;

linklist *head,*s,*r;

head=(linklist*)malloc(sizeof(linklist)); r=head;

printf(\ scanf(\

while((a>=1)&&(a<=10)) {

s=(linklist*)malloc(sizeof(linklist)); s->data=a; r->next=s; r=s;

scanf(\ }

r->next=NULL; //最后一个结点的后续结点置空。 return head; }

/*打印链表:将元素诸葛打印直至最后一个结点.*/ void PRINT(linklist *head) {

linklist *p; int j=0;

p=head->next; while(p!=NULL) {

j++;

printf(\ p=p->next; } }

/*将当前链表逆置,并且不开辟新空间,逆置之后将当链表头结点返回*/ linklist *REVERSEL(linklist *head) {

linklist *p,*q; p=head->next;

while(p->next!=NULL)

…… 此处隐藏:534字,全部文档内容请下载后查看。喜欢就下载吧 ……
西电机电院自动化专业软件技术基础上机报告(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/438931.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)