作业帮 > 综合 > 作业

数据结构 用C语言描述

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/04/29 19:10:58
数据结构 用C语言描述
按照四则运算加、减、乘、除和幂运算(↑)优先关系的惯例,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:
A-B*C/D+E↑F
数据结构 用C语言描述
#include <malloc.h>
#define maxsize 100
typedef int Datatype;
typedef struct
{
Datatype data[maxsize];
int n;
}seqlist;

seqlist* createNullList_seq(void)
{
seqlist *l;
l=(seqlist*)malloc(sizeof(seqlist));
if(l!=NULL)
l->n=0;
else
printf("Out of space!\n");
return l;
}
int insert_seq(seqlist* l,int p, Datatype x)
{
int q;
if(l->n==maxsize)
{ printf("overflow!\n");
return(0);
}
if(p<1||p>l->n+1)
{printf("no exist!\n");
return(0);
}
for(q=l->n-1;q>=p-1;q--)
l->data[q+1]=l->data[q];
l->data[q+1]=x;
l->n=l->n+1;
return(1);
}
int delete_seq(seqlist* l,int p)
{
int q;
if(p<1||p>l->n)
{printf("no exist!\n");
return(0);
}
for(q=p;q<=l->n-1;q++)
l->data[q-1]=l->data[q];
l->n=l->n-1;
return(1);
}
int locate_seq(seqlist* l,int x)
{
int q;
for(q=0;q<=l->n;q++)
{
if(l->data[q]==x)
return(q+1);
}
}
void display(seqlist* l)
{
for(int k=0;k<l->n;k++)
printf("%d ,",l->data[k]);
}
int length(seqlist* l)
{
return l->n;
}

void main()
{
int i,num,d,len,loc,j;
seqlist *l;
l=createNullList_seq();
num = 7;
for(i=0,j=1;i<num;i++,j++)
{
scanf("%d",&d);
insert_seq(l,j,d);
}
insert_seq(l,3,105);
display(l);
printf("\n");
delete_seq(l,6);
display(l);
printf("\n");
len=length(l);
printf("the length of seqlist is %d:",len);
printf("\n");
display(l);
printf("\n");
loc=locate_seq(l,60);
printf("the location of 60 is %d:",loc);
}
呵呵 我这学期也学数据结构 不过我们好象比你学的快哦
你这题目我帮你改好了 也运行过了 在VC++6.0里
结果是没有问题的 这个我保证
呵呵 其实你写的已经很完整了 只是很多地方丢三落四的
少个括号啊 符号啊 什么的 你都没注意
我逃课帮你改的哦 西西