代码搜索结果
找到约 25,760 项符合
3 的代码
3.25.c
3.25④ 试写出求递归函数F(n)的递归算法,
并消除递归:
F(n) = n+1 当n=0
F(n) = nF(n/2) 当n>0
实现下列函数:
int F(int n);
/* if n
3.28.c
◆3.28② 假设以带头结点的循环链表表示队列,并且
只设一个指针指向队尾元素结点(注意不设头指针),
试编写相应的队列初始化、入队列和出队列的算法。
实现下列函数:
Status InitCLQueue(CLQueue &rear);
Status EnCLQueue(CLQueue &rear, ElemType x);
Status DeCLQueue(CLQueue &re
3.29.c
<mark>3</mark>.29③ 如果希望循环队列中的元素都能得到利用,
则需设置一个标志域tag,并以tag的值为0或1来区
分,尾指针和头指针值相同时的队列状态是"空"还
是"满"。试编写与此结构相应的入队列和出队列的
算法,并从时间和空间角度讨论设标志和不设标志
这两种方法的使用范围(比如,当循环队列容量较
小而队列中每个元素占的空间较多时,那一种方法
较好?)。
实现下列函数:
Statu ...
3.31.c
◆<mark>3</mark>.<mark>3</mark>1③ 假设称正读和反读都相同的字符序列为
"回文",例如,'abba'和'abcba'是回文,'abcde'
和'ababab'则不是回文。试写一个算法判别读入的
一个以'@'为结束符的字符序列是否是"回文"。
实现下列函数:
Status Palindrome(char *word);
/* 利用栈和队列判定字符序列word是否是回文 */
可使用栈Stack和 ...
3.20.c
3.20③ 假设以二维数组g(1..m,1..n)表示一个图像
区域,g[i,j]表示该区域中点(i,j)所具颜色,其值
为从0到k的整数。编写算法置换点(i0,j0)所在区域
的颜色。约定和(i0,j0)同色的上、下、左、右的邻
接点为同色区域的点。
实现下列函数:
void ChangeColor(GTYPE g, int m, int n,
3.15.c
◆<mark>3</mark>.15③ 假设以顺序存储结构实现一个双向栈,即在一维数组的存
储空间中存在着两个栈,它们的栈底分别设在数组的的两个端点。
试编写实现这个双向栈tws的三个操作:初始化inistack(tws)、入栈
push(tws,i,x)和出栈pop(tws,i,x)的算法, 其中i为0或1,用以分
别指示设在数组两端的两个栈,并讨论按过程(正/误状态变量可设
为变参)或函数设计这些操作算法各 ...
3.21.c
◆<mark>3</mark>.21③ 假设表达式由单字母变量和双目四则运
算算符构成。试写一个算法,将一个通常书写形式
且书写正确的表达式转换为逆波兰式。
实现下列函数:
char *RPExpression(char *e);
/* 返回表达式e的逆波兰式 */
Stack是一个已实现的栈。
可使用的相关类型和函数:
typedef char SElemType; // 栈Stack的元素类型 ...
3.30.c
◆<mark>3</mark>.<mark>3</mark>0② 假设将循环队列定义为:以域变量rear
和length分别指示循环队列中队尾元素的位置和内
含元素的个数。试给出此循环队列的队满条件,并
写出相应的入队列和出队列的算法(在出队列的算
法中要返回队头元素)。
实现下列函数:
Status EnCQueue(CLenQueue &Q, QElemType x);
Status DeCQueue(CLenQueue & ...
3.16.c
<mark>3</mark>.16② 假设如题<mark>3</mark>.1所述火车调度站的入口处有n节
硬席或软席车厢(分别以H和S表示)等待调度,试编
写算法, 输出对这n节车厢进行调度的操作(即入栈
或出栈操作)序列,以使所有的软席车厢都被调整到
硬席车厢之前。
实现下列函数:
void SwitchYard(SqList train, char *s);
/* 顺序表train表示列车,其元素取值H或S ...
3.19.c
◆<mark>3</mark>.19④ 假设一个算术表达式中可以包含三种括号:圆括号"(" 和
")",方括号"["和"]"和花括号"{"和"}",且这三种括号可按任意的
次序嵌套使用(如:…[…{…}…[…]…]…[…]…(…)…)。编写判别给定表达
式中所含括号是否正确配对出现的算法(已知表达式已存入数据元素
为字符的顺序表中)。
实现下列函数:
Status MatchCheck(SqList e ...