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

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

来源:网络收集 时间:2026-04-10
导读: 班级:041132 学号:04113*** 姓名: /******************************************************************** 对链表进行从高到低排序 ********************************************************************/ l

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

/******************************************************************** 对链表进行从高到低排序

********************************************************************/ linklist *SORT(linklist *head) {

linklist *p,*q; int number2; float price2; p=head->next;

while(p->next!=head) {

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

if(p->price<(q->price)) {

number2=p->number; price2=p->price; p->number=q->number; p->price=q->price; q->number=number2; q->price=price2; }

q=q->next; }

p=p->next; }

return head; }

/********************************************************** 按照由高到低的顺序先寻找插入位置,然后将节点插入链表

***********************************************************/ linklist *INSERT(linklist *head,linklist *s) {

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

if(s->price>p->price) {

s->next=p; head->next=s;

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

}

if(s->priceprice) {

p=p->next;; q=q->next; }

s->next=q; p->next=s;

return head; }

/********************************************************* 主函数

**********************************************************/ int main() {

linklist *head,*s;

s=(linklist *)malloc(sizeof(linklist)); head=CREAT();

printf(\ PRINT(head);

printf(\ SORT(head);

printf(\ PRINT(head);

printf(\

s=(linklist *)malloc(sizeof(linklist));

printf(\ scanf(\ printf(\ INSERT(head,s);

printf(\ PRINT(head);

printf(\ return(1); }

第五题:

方法一:

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

/******************************************************************* 假设称正读反读都相同的字符序列为回文。例如,‘abba’,‘abcba’都是回文, ‘ababab’不是回

文,试编写程序判别从标准输入读入的以’@’为结束符的字符序列是否是回文。 假设称正读反读都相同的字符序列为回文。例如,‘abba’,‘abcba’都是回文, ‘ababab’不是回文,

试编写程序判别从标准输入读入的以’@’为结束符的字符序列是否是回文。 编译环境:GCC

开发软件:Codeblocks

基本思想:将字符存入数组,然后对数组进行首尾两端的元素进行比较,若相等,则将前标号后移一

位,同时后标号前移一位。

********************************************************************/ #include #include #include #define maxsize 1024 int main() {

char a[maxsize]; int n=0,Flag=0; int i,j;

printf(\ a[n]=getchar(); while(a[n]!='$') { n++;

a[n]=getchar(); }

printf(\ for(i=0;i

printf(\ }

for(i=0,j=n-1;(i

{

if(a[i]==a[j]) Flag++; else break; }

if(Flag==n/2)

printf(\ else

printf(\

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

}

return (1);

方法二:

/*****************************************************************************************************

假设称正读反读都相同的字符序列为回文。例如,‘abba’,‘abcba’都是回文, ‘ababab’不是回文,

试编写程序判别从标准输入读入的以’@’为结束符的字符序列是否是回文。 编译环境:GCC

开发软件:Codeblocks

基本思想:采用堆栈的思想:先将数据存入链表,然后计算链表长度,将链表的前一半压入堆栈,若长度为则需

先将链表当前指向后移一个,在将堆栈数据弹出,与链表后半部分数据进行比较;若长度为偶数,则直接将链堆、

栈中数据弹出与链表中的后半部分进行比较。

*****************************************************************************************************/ #include #include #include #define maxsize 1024 typedef char datatype; int con=0;

typedef struct Stack {

datatype element[maxsize]; int Top;

}Stack; //定义栈体 typedef struct node {

datatype data; struct node *next;

}linklist; //定义链表,存储待判定字符

void SETNULL(Stack *s )//将栈体置空 {

s->Top=-1; }

int EMPTY(Stack *s) // 判断栈体是否是空 {

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

if(s->Top==-1) return (1); else return (0); }

Stack *PUSH(Stack *s,datatype E) //入栈 {

if(s->Top>=maxsize-1) {

printf(\ return (NULL); } else {

s->Top++;

s->element[s->Top]=E; }

return s; }

datatype *POPS(Stack *s) //出栈 {

datatype *temp; if(EMPTY(s)) {

printf(\ return (NULL); } else {

s->Top--;

temp=(datatype *)malloc(sizeof(datatype)); *temp=s->element[s->Top+1]; }

return temp; }

datatype *GETTOPS(Stack *s) //取栈顶元素 {

datatype *temp; if (EMPTY(s))

…… 此处隐藏:1384字,全部文档内容请下载后查看。喜欢就下载吧 ……
西电机电院自动化专业软件技术基础上机报告(5).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)