回 帖 发 新 帖 刷新版面

主题:求助

实习一  线性结构

1、(实习题)  请写出计算两个以 单链接表表示的多项式相乘的程序。
       
2、(作业题)  已知两个单链表 A 和 B 分别表示两个集合,其元素递增排列。请编写程序求集合 A 和 B 的交集 C = AB,要求单链表C按其元素递增排列,并利用原表(即表A和表B)的结点空间存放表C。

3、(作业题)  假设有 二 个栈共同使用一块顺序存储的空间,为简单起见可设为共同使用数组 int a〔200〕。它们的栈底分别设在数组的两端,而栈顶指针在进行插 入操作时,向中间方向移动。请给出进出栈的程序。

回复列表 (共2个回复)

沙发

我试一下第三题吧,先定义两个栈吧,并且定义一全局一元数组a[200],并使base1=&a[0],base2=&a[199]:
typedef struct stack1
{int *base1;
 int *top1;
 int stacksize1;
}stack1;
 
typedef struct stack2
{int *base2;
 int *top2;
 int stacksize2;
}stack2;
建表的过程和进栈的过程就省了,现在只进行出栈的过程,用e来承接出栈的元素:
void pop()
{stack base1,base2,top1,top2;
 if(base1==top1||base2==top2||top1>=top2||stacksize1+stacksize2>200)
 {exit(1);
  return(error); 
 }
 while(top1!=base1)
 e=--*top1;
 return(base1);
}

void pop()
{stack base1,base2,top1,top2;
 if(base1==top1||base2==top2||top1>=top||2stacksize1+stacksize2>200)
 {exit(1);
  return(error); 
 }
 while(top2!=base2)
 e=++*top2;
 return(base2);
}
不知道对不对,你自己试试吧,我也是个新手,如果有错误,请指出,谢谢!

板凳

我是刚学数据结构的,基本什么都不懂

我来回复

您尚未登录,请登录后再回复。点此登录或注册