算法与数据结构实验册(顾原翔1413101019)(1)(1)

发布时间 : 星期一 文章算法与数据结构实验册(顾原翔1413101019)(1)(1)更新完毕开始阅读

金陵科技学院实验报告

{char st[maxsize]; int top=-1,i=0,tag=1; while(i

{if(exp[i]=='('||exp[i]=='['||exp[i]=='{') { top++;

st[top]=exp[i]; }

if(exp[i]==')') if(st[top]=='(') top--; else tag=0; if(exp[i]==']')

if(st[top]=='[') top--; else tag=0; if(exp[i]=='}')

if(st[top]=='{') top--; else tag=0;

i++; }

if(top>=0) tag=0; return tag; } main() {int tag,i;

char exp[7]={100};

printf(\请输入一个算式表达式:\\n\ for(i=0;i<7;i++) exp[i]=getchar(); tag=match(exp,7); if(tag)

金陵科技学院实验报告

printf(\算式表达式中的开括号和闭括号配对。\ else

printf(\算式表达式中的开括号和闭括号不配对!\getchar(); getchar(); }

(2)#include

#define N 64 typedef struct node {

int data[N]; char naem; int top; }sqstack;

void SETNULL(sqstack *q) {

q->top=-1; }

int PUSH(sqstack *q,int x) {

if(q->top==N-1) return 0; q->top++; q->data[q->top]=x; return 1; }

int POP(sqstack *q,int *x) {

if(q->top==-1)

金陵科技学院实验报告

return 0;

(*x)=q->data[q->top]; q->top--; return 1; }

void MOVE(sqstack *x,sqstack *y) { int l; POP(x,&l);

printf(\环-->%c柱子\ PUSH(y,l); }

int HANOI(int n,sqstack *a,sqstack *b,sqstack *c) {

static int i=0; if(n==1) {

MOVE(a,c); i++; } else {

HANOI(n-1,a,c,b); MOVE(a,c); i++;

HANOI(n-1,b,a,c); } return i; } int main()

金陵科技学院实验报告

{

int m,t,k; sqstack A,B,C; SETNULL(&A); SETNULL(&B); SETNULL(&C); A.naem='A'; B.naem='B'; C.naem='C';

printf(\请输入汉诺塔中圆环的数目:\ scanf(\ for(t=m;t>0;t--) PUSH(&A,t);

printf(\假设有三根柱子A、B、C,开始时A柱子上有1~%d环,并且它们是按照从小到大的顺序放在A柱子上的,按照汉诺塔规则,将A柱子上所有环通过B柱子,移动到C柱子的则移动方法为:\\n\\n\ k=HANOI(m,&A,&B,&C);

printf(\总共需要移动的次数为:%d次\\n\ return 0; }

(3)#include

#include typedef struct dnode {

char ch;

struct dnode *prior,*next; }linklist; typedef struct {

联系合同范文客服:xxxxx#qq.com(#替换为@)