标签:type 说明 har for 初始化 超过 测试 getc scale
头插法(倒序,开始要next=NULL)
void CreateListR(LinkList &L,int n){//创建 头插法
LinkList s;
ElemType x;
L=new LNode;
L->next=NULL;
int i;
for(i=0;i<n;i++){
s=new LNode;
cin>>x;
s->data=x;
s->next=L->next;
L->next=s;
}
}
尾插法(顺序,,最后要next=NULL)
void CreateListR(LinkList &L,int n){//创建 尾插法
LinkList s,r;
ElemType x;
L=new LNode;
L->next=NULL;
r=L;
int i;
for(i=0;i<n;i++){
s=new LNode;
cin>>x;
s->data=x;
r->next=s;
r=s;
}
r->next=NULL;
}
函数参数 str[]为原字符串 s为str[x]入栈的栈(其中x从小到大)
定义 整型变量 i 为循环变量
自定义类型变量 e 存放栈头元素
for i=0 to str[i]为空
if Push函数将str[i]进栈s 等于 false(即栈满)
返回 false
end for
for i=0 to str[i]为空
if 栈空
返回 false
end if
Pop函数出栈(e=原栈头)
if str[i] 不等于 e
函数销毁 s
返回 false
end if
函数销毁 s
返回 true
end for
主要的区别在于字符数组的赋值与判断str[i]无内容的条件不同---------还是上学期gets和getchar的用法以及‘\0’和‘\n‘的用法还不太清楚
0分:
满分:
传参 栈指针类型 s ,ElemType类型 e传当前字符, c传前一个字符
定义 ElemType类型 变量x存放栈头,a存放出栈元素
if 栈不为空
x 等于 gettop(s)函数取栈头
if e 等于 ‘)‘
while x 不等于 ‘(‘ 且 队列不为空
x=gettop(s);s栈头
pop出栈存于a
输出 空格 a
end
if x 等于 ( 出栈
end if
else if e 等于 ( 进栈
else if e 等于 *
while x 等于 * 或 x 等于 /
x=gettop(s);
pop出栈存于a
输出 空格 a
end
e 进栈
end
else if e 等于 /
while x 等于 * 或 x 等于 /
x=gettop(s);
pop出栈存于a
输出 空格 a
end
e 进栈
end
else if e 等于 +
while x 等于 * 或 x 等于 / 或 x 等于 + 或 x 等于 -
x=gettop(s);
pop出栈存于a
输出 空格 a
end
if c 为数字 或 c 等于 )
e 进栈
end
else if e 等于 -
while x 等于 * 或 x 等于 / 或 x 等于 + 或 x 等于 -
x=gettop(s);
pop出栈存于a
输出 空格 a
end
if c 为数字
e 进栈
else
输出 空格 a
flag 等于0
end
end if
else if e 等于 -
输出 e
else
进栈
主函数
栈的基本操作
’
该题主要函数
错误测试:当开头为多个括号时,第一个输出的数字前会多一个空格
修正 :增加全局变量flag=0 ,第一次输出后令flag=1,通过对flag的值判断是否输出空格
修正:利用全局变量flag
修正:函数参数传将前一个字符,判断该字符的前一个字符是否也是运算符(e为当前字符,c为前一个字符)
在‘+’进队前判断c是否为数字
在‘-’进队前进行判断c是否为数字,且若是负数,‘-’要输出
定义 整型变量 n存储总人数 m为出队数字 循环变量 i 判断变量flag=0
自定义类型 e 存储出队数据
队列指针类型 q
输入 n,m
if m 大于 n
报错
end if
else1
InitQueue函数初始化 q
for i=1 to i=n 共n次
i 进队q
end for
初始化 i=0
while 队列不为空
i++;
出队 e=队头
if i 不等于 m
进队
end if
else2
if flag 等于 0
输出 e;
flag 等于 1 表明不为队头
else
输出 空格 输出 e
重置 i 等于 0;
end else2
end while
end else1
曾文惠
201721123002
进制转换
void conversion(int a, int b) //参数为从a进制转换为b进制
{
int num = 0;
char z = ‘A‘;
printf("请输入你想要转换的%d进制数",a);
scanf("%d", &num);
while(num)
{
Push(Scale, num%b); //取余数逐个进栈
num /=b; //求商
}
int e = 0;
printf("转换为%d进制数为:", b);
while(!StackEmpty(Scale))
{
Pop(Scale, e); //逐个出栈
if(e >= 10 && e <= 15) //结果为十六进制时用到转换为字母
printf("%c", z+e-10);
else
printf("%d", e);
}
printf("\n");
}
栈
队列
标签:type 说明 har for 初始化 超过 测试 getc scale
原文地址:https://www.cnblogs.com/Zeng99/p/8732708.html