没有合适的资源?快使用搜索试试~ 我知道了~
首页PTA程序填空题14道.pdf
资源详情
资源评论
资源推荐
2020/6/18 题目列表
https://pintia.cn/problem-sets/1272511321327460352/problems/type/5 2/16
#include <stdio.h>
#include <string.h>
typedef char DataType;
/*栈中允许存储的元素的最大个数*/
#define STACKSIZE 100
/* 顺序栈的定义 */
typedef struct
{
DataType items[STACKSIZE]; /*存放栈中元素的一维数组*/
int top; /*用来存放栈顶元素的下标*/
}SqStack;
int InitSqStack(SqStack *S)
{
S->top = -1;
return 1;
}
int SqStackPush( SqStack *S, DataType e )
{
if ( S->top == STACKSIZE-1)
return 0; /*栈已满*/
S->top++;
S->items[S->top]=e;
return 1;
}
int SqStackPop(SqStack *S, DataType *e)
{ /* 将栈S的栈顶元素弹出,放到e所指的存储空间中 */
if ( S->top == -1 ) /* 栈为空 */
return 0;
*e = S->items[S->top]; /* 将栈顶元素带回来 */
S->top--; /* 修改栈顶指针 */
return 1;
}
int SqStackEmpty(SqStack S)
{/* S为顺序栈 */
if( S.top == -1 )
return 1;
else
return 0;
}
int MatchBrackets(char a[], int n)
{
SqStack s;
DataType x;
int i;
InitSqStack(&s);
for ( i = 0 ; i < n ; i++ )
{
if (a[i]=='(')
SqStackPush(
&s,a[i]
(2分));
else if(
a[i]==')'
(2分))
SqStackPop(
&s,&x
(2分));
}
if (
SqStackEmpty(s)
(2分))
return 1;
else
return 0;
}
int main()
{
char a[100];
int n = 0;
int rst;
gets(a);
n =
strlen(a)
(2分);
rst = MatchBrackets(a,n);
if( rst == 1)
printf("字符串中的小括号是成对的");
else
printf("字符串中的小括号不是成对的");
return 0;
}
5-2
本题目要求循环队列的元素入队、遍历和清空。
作者 通信DS课程组
单位 成都信息工程大学
保存
剩余时间:3天
2020/6/18 题目列表
https://pintia.cn/problem-sets/1272511321327460352/problems/type/5 3/16
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef int DataType;
#define QUEUESIZE 100 /* 队列的最大长度 */
/* 循环队列的定义 */
typedef struct
{
DataType items[QUEUESIZE];
int front,rear; /* 队头、队尾指针 */
}SqQueue;
int InitSqQueue(SqQueue *Q)
{
Q->front = 0;
Q->rear = 0;
return 1;
}
int SqQueueEmpty (SqQueue Q)
{/* 判别队列Q是否为空;若为空返回真值,否则返回假值 */
if ( Q.rear == Q.front )
return 1 ;
else
return 0 ;
}
int SqQueueLength (SqQueue Q)
{/* 返回队列中元素个数 */
return ( (QUEUESIZE + Q.rear - Q.front) %
QUEUESIZE
(2分) );
}
int EnSqQueue(SqQueue *Q,DataType e)
{/* Q为顺序队列,e为待入队的元素 */
if(
(Q->rear+1)%QUEUESIZE==Q->front
(2分))
{
printf("队列已满,不能完成入队操作!\n");
return 0;
}
Q->items[Q->rear] = e;
Q->rear = (Q->rear+1)% QUEUESIZE ;/* 重新设置队尾指针 */
return 1;
}
int DeSqQueue(SqQueue *Q, DataType *e)
{/* 删除队列的队头元素,用e返回其值 */
if(
Q->rear == Q->front
(1分)) /*队列为空*/
{
printf("队列已空,不能完成出队操作!\n");
return 0;
}
*e = Q->items[Q->front];
Q->front = (Q->front+1) % QUEUESIZE;/*重新设置队头指针*/
return 1;
}
int TraverseSqQueue(SqQueue Q)
{
int pos;
pos = Q.front;
while ( ( pos + 1 ) % QUEUESIZE <= Q.rear )
{
printf("%d ",Q.items[pos]);
pos++;
}
printf("\n");
return 1;
}
int main()
{
SqQueue Q;
DataType x;
char ch;
InitSqQueue(&Q);
do
{
scanf("%d",&x);
EnSqQueue(
&Q,x
(2分));
}while ((ch=getchar())!='\n');
TraverseSqQueue(Q)
(1分);
while (
!SqQueueEmpty(Q)
(2分))
{
DeSqQueue(&Q,&x);
}
if (SqQueueEmpty(Q))
时间限制 400 ms
内存限制 64 MB
解题报告
保存
剩余时间:3天
2020/6/18 题目列表
https://pintia.cn/problem-sets/1272511321327460352/problems/type/5 4/16
{
printf("循环队列Q已经为空");
}
return 0;
}
输入数据举例
45 89 65 21 35 74 90 12
输出数据举例
45 89 65 21 35 74 90 12 循环队列Q已经为空
5-3
本题目要求完成在学生信息单链表中查找指定姓名的学生成绩,并打印出姓名,成绩。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char name[10]; // 姓名
int score; // 分数
}DataType; // 学生信息
typedef struct{
DataType stu;
struct LNode* link;
}LNode,*PNode,*LinkList;
// 初始化单链表,head为单链表头指针,细节在此不表
int InitLinkList(LinkList *head);
// h为指向单链表的指针,pos为插入位置,从1开始,x为待插入数据元素,细节在此不表
int LinkListInsert(LinkList h, int pos, DataType x);
int Find(LinkList h, char* s, DataType *x)
{
PNode p = h->link;
while (p && strcmp(
s,p->stu.name
(2分))!=0 ) // 查找,注意
两个参数填入时的中英文逗号的区别
{
p = p->link;
}
if (
!strcmp(s,p->stu.name)
(1分))
{
memcpy(
x->name,p->stu.name
(2分),sizeof(p->stu.name)); // 字符串赋值,注意两个参数填入时的中英文逗号
的区别
x->score =
p->stu.score
(1分);
return 1;
}
else
{
return 0;
}
}
int main()
{
LinkList L;
char chName[10];
int i,pos=1;
DataType x;
DataType a[5] = {{"Tom",90},{"Lily",87},{"May",92},{"Lucy",78},{"Tracy",76}};
InitLinkList(&L);
for (i=0;i<5;i++)
{
LinkListInsert(L,pos++,a[i]);
}
gets(chName)
(1分);
if ( Find(L,chName,&x) ==
1
(1分))
{
printf("%s,%d\n",
x.name,x.score
(2分)); // 注意两个参数填入时的中英文逗号的区别
}
else
{
printf("No record for %s",chName);
}
return 0;
}
作者 通信DS课程组
单位 成都信息工程大学
时间限制 400 ms
内存限制 64 MB
保存
剩余时间:3天
剩余15页未读,继续阅读
「已注销」
- 粉丝: 9
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0