2008年上半年软件设计师下午试卷II[3]

软件设计师 责任编辑:xingke518 2008-09-18

添加老师微信

备考咨询

加我微信

摘要:试题五(共15分)阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】栈(Stack)结构是计算机语言实现中的一种重要数据结构。对于任意栈,进行插入和删除操作的一端称为栈顶(StackTop),而另一端称为栈底(StackBottom)。栈的基本操作包:创建栈(NewStack)、判断栈是否为空(IsEmpty)、判断栈是否已满(Is

试题五(共15分)

阅读下列说明和C代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

【说明】

栈(Stack)结构是计算机语言实现中的一种重要数据结构。对于任意栈,进行插入和删除操作的一端称为栈顶(Stack Top),而另一端称为栈底(Stack Bottom)。栈的基本操作包:

创建栈(NewStack)、 判断栈是否为空(IsEmpty)、判断栈是否已满(IsFull)、获取栈顶数据(Top)、压栈/入栈(Push)、弹栈/出栈(Pop)。

当设计栈的存储结构时,可以采取多种方式。其中,采用链式存储结构实现的栈中各数据项不必连续存储(如图5-1)。

图 5-1 栈的链式存储结构示意图

以下C 代码采用链式存储结构实现一个整数栈操作。

【C代码】

typedef struct List {

int data; // 栈数据

struct List* next;  // 上次入栈的数据地址

}List;

 

typedef struct Stack {

List* pTop;  // 当前栈顶指针

}Stack;

 

Stack* NewStack() { return (Stack*)calloc(1,sizeof(Stack)); }

 

int IsEmpty(Stack* S){ //判断栈S是否为空栈

  if((1)) return 1; 

  return 0; 

}

int Top(Stack* S){ //获取栈顶数据。若栈为空,则返回机器可表示的最小整数

if( IsEmpty(S) ) return INT_MIN;

  return  (2)  ; 

}

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!