频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

数据结构教程 第二十五课 单元测验

来源: 作者: 出处:巧巧读书 2006-04-28 进入讨论组

教学目的: 复习前面所学的内容,检验学习效果,拾遗补缺

教学重点:

教学难点:

授课内容:

测验题:

一,填空:

  1. 基本数据结构有____,____,____,____四种。
  2. 存储结构可根据数据元素在机器中的位置是否连续分为____,____。
  3. 算法的基本要求有_____,_____,____,____。
  4. 度量算法效率可通过_______,_______两方面进行。
  5. 栈的定义:_______________________。

二,简答:

  1. 举例说明数据对象、数据元素、数据项的定义。
  2. 类C语言和C语言有哪些主要区别?
  3. 线性表的基本操作有哪些?
  4. 写出类C语言定义的线性表的静态分配顺序存储结构。

三,算法设计:

  1. 下面是线性表的存储结构和插入算法,请补充算法中空缺部分。

    #define LIST_INIT_SIZE 100

    #define LISTINCREMENT 10

    typedef struct{

    ElemType *elem; //存储空间基址

    int length; //当前长度

    int listsize; //当前分配的存储容量以一数据元素存储长度为单位

    }SqList;

    status ListInsert(List *L,int i,ElemType e) {

    ____________ *p,*q;

    if (i<1||i>L->length+1) return ERROR;

    q=&(L->elem[i-1]);

    for(p=&L->elem[L->length-1];p>=q;--p)

    ________________;

    *q=e;

    __________________;

    return OK;

    }/*ListInsert Before i */

  2. 下面是栈的顺序存储结构和入栈、出栈算法,请补充算法中空缺部分。

typedef struct{

SElemType *base;

SElemType *top; //设栈顶栈底两指针的目的是便于判断栈是否为空

int StackSize; //栈的当前可使用的最大容量.

}SqStack;

Status Push(SqStack &S,SElemType e); {

if(S.top - s.base>=S.stacksize) {

S.base=(ElemType *) realloc(S.base,

(S.stacksize + STACKINCREMENT) * sizeof(ElemType));

if(!S.base)exit(OVERFLOW);

S.top=S.base+S.stacksize;

S.stacksize+=STACKINCREMENT;

}

*S.top++=_____;

return OK;

} //Push

Status Pop(SqStack &S,SElemType &e); {

if(________)

return ERROR;

_____=*--S.top;

return OK;

}//Pop

四,问答:

  1. 用图示法说明在单向线性链表中插入结点的过程。
  2. 有一学生成绩单,画出用链式存储结构时的成绩单数据的存储映像。
  3. 用C语言实现单向线性链表。写出存储结构定义及基本算法。
浏览地址: http://www.qqread.com/data-structure/u784104102.html 更多文章 更多内容请看数据结构ASP.NET教程FreeBSD使用教程专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章