• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 研讨交流 > 正文

    数据结构顺序栈实验报告x

    时间:2020-09-07 12:13:27 来源:勤学考试网 本文已影响 勤学考试网手机站

    一、 设计人员相关信息

    设计者姓名、学号和班号:12地信李晓婧12012242983

    设计日期:2014.

    上机环境:VC++6.0

    二、 程序设计相关信息

    实验题目:编写一个程序,实现顺序栈(假设栈中元素类型为 char)的各种

    基本运算,并在此基础上设计一个程序,完成如下功能:

    (1) 初始化栈

    (2) 判断栈是否为空

    (3) 依次进栈元素a,b,c,d,e

    (4) 判断栈是否为空

    (5) 输出栈长度

    (6) 输出从栈顶到栈底元素

    (7) 输出出栈序列

    (8) 判断栈是否为空

    (9) 释放栈

    实验项目组成:栈的初始化、销毁、判断是否为空、进栈、出栈、取栈顶元 素。

    实验项目的程序结构(程序中的函数调用关系图):

    实验项目包含的各个文件中的函数的功能描述:

    初始化栈InitStack:建立一个新的空栈,实际上将栈顶指针指向-1即可。

    销毁栈DestroyStack:释放栈占用的存储空间

    判断栈是否为空 StackEmpty:栈为空的条件是s->op==-1。

    进栈Push:在栈不满的条件下,先将栈顶指针增 1,然后在栈顶指针指向 位置插入元素 e。

    出栈Pop:在栈不为空的条件下,先将栈顶元素赋给e,然后将栈顶指针减

    1.

    取栈顶元素GetTop:在栈不为空的条件下,将栈顶元素赋给 e。

    算法描述或流程图:

    #include "stdio.h"

    #include "malloc.h"

    #include<stdlib.h>

    #define MaxSize 50

    typedef char ElemType;

    typedef struct

    {ElemType data[MaxSize];

    int top; /* 栈顶指针 */

    }SqStack; //定义顺序栈类型

    void InitStack(SqStack*&s)/* 初始化 */

    {

    s=(SqStack*)malloc(sizeof(SqStack));

    s->top=-1; //栈顶指针置为 -1

    }

    void DestroyStack(SqStack *&s)/* 销毁 */

    {

    free(s);

    }

    int StackEmpty(SqStack*s)/*判断是否为空 */

    {

    return(s->top==-1);

    }

    int push(SqStack *&s,ElemType a[],int n)

    {

    int i;

    if(s->top==MaxSize-1) //栈满的情况,即栈上溢出

    return 0;

    for(i=0;i<n;i++)

    {

    s->top++;

    //栈顶指针增 1

    s->data[s->top]=a[i]; //元素e放在栈顶指针处

    }

    return 1;

    }

    int Pop(SqStack*&s,ElemType &e)/*出栈一个元素 */

    {

    if(s->top==-1)

    return 0;

    //栈为空的情况,即栈下溢出

    e=s->data[s->top];

    //取栈顶元素

    s->top--;

    return 1;

    //栈顶指针减 1

    }

    int GetTop(SqStack *s,ElemType &e)/*取栈顶元素 */

    {

    if(s->top==-1) //栈为空的情况,即栈下溢出

    return 0;

    e=s->data[s->top]; //取栈顶元素

    return 1;

    }

    int StackLength(SqStack *s)/*求栈长度 */

    {

    return(s->top+1);

    }

    void DispStack(SqStack *s)

    {

    int i;

    for(i=s->top;i>=0;i--)

    printf("%c",s->data[i]);

    printf("\n");

    }

    void main()

    {

    int i,j;

    ElemType str[5]={'a','b','c','d','e'}; //定义字符数组

    SqStack *st; //定义栈

    Ini tStack(st);/* 初始化 */

    i=StackEmpty(st); //判断栈是否为空

    if(i==0)

    printf("顺序栈非空\n");

    else

    printf("顺序栈为空\n"); push(st,str,5); 〃进栈 j=StackEmpty(st);

    if(j==0)

    printf("顺序栈非空\n");

    else

    printf("顺序栈为空\n");

    printf("栈长度为:%d\n",StackLength(st)); 〃输出栈长度

    printf("出栈序列:\n");

    DispStack(st); 〃输出栈

    StackEmpty(st);

    DestroyStack(st);

    }

    实验数据和实验结果:

    环 *1:\83\3-1 调贰完^\DebuE\3-l. eze

    an

    an

    出现的问题及解决方案:

    3M Jtpp [::Vd口匚unc-nt &cAdQcuiwnts ciV^ocunents c !\dacijn>enit5c :^i1i]ieijiki

    3M Jtpp [::Vd口匚unc-nt &cAdQcuiwnts ciV^ocunents c !\dacijn>enit5

    c :^i1i]ieijikihiiIs!jnti ^etting^^diinini^trdil■叫呆面\83\3-1^3- 1 上pp(21) 2 cAiiacunpnts and 5ettiiniq5\idiniHi5tr9twr\# E\S3\b-iYS-19epp(M) ; error

    jnd S'i?ttime's%Adniniix tr Jit nr\^ 面*航自-iW"?rpp#) : rrrnr C21^6 : sj|rit am w叶:“::曇:凹 ; !b^Forr idf-nti-Firr !rlrH'!

    日nd s ettin^sX sJninistrator^M 面'阴血):error 'l:l?i*iype 1s nissing stcragre-class or type spec-ifiers

    and settings\adliiinistrat(&]tB3\3-1X3-1 >icppCfi) : error C巧M: ' i Filming storage-class or typ? spfciiFl?rs

    and s&ttingE^adninistraitorX桌面*叭」斗\:3M wpp口砂 :error E2562 : 1StackCfipt^"i 5odtT function returning a value

    -Srr difr] jr jL i>u>n n-F uSl.diLl<Enfity !

    . … …_ C?&61; s^ntai? errur ; identifier ,[Elpnfnpe,

    c:Vi9ocun>ents and settings\aiJiiinistt1 ator'k桌面XU肌3-1\3T ?icppt:3*Ji : prror C293¥: 'flats': is not n nenber of ■SqStack,1 cz'VdDcuneints: and 5ettings'XaAninistiratbfX^;E\B3\3-1\3 1 .cpp(ti) : see declaration of '^qStack'

    rmOtf-

    prrg#~

    errosr

    :trror

    diid settingi.\didninis trdtar面*2\2-1\詮亠亡艸阳 1、: jrifl sPttinq*;%arlRini^ fc-fr~3tnr\W ?\ftS\3-Brpp:

    C空 IMG ± ufhdiecl^rrd ideiitifier

    : sj|n4-JX prriir;mi ssi ng ■*:;1 口「?'} k

    CZW1: s^ntaw error ; identifier 'EleinType'_ . ”尸一 - ^ …_ 既的耶暑'data': is net a n&raber of 'SqStacIc'

    £ ^doiciiiKinits settings'X.adni.ni£trator\桌面、時垃-”吕?仁亡ppk) s see dec Lara tiom>af "SqStacf

    c : \.d口匚UFK'iir# Jind s i^t.iiiniHis tr.it . Epp44) : error £?AA i : s/ntax error : identi-Firr ! E]rnTy|ic'

    cAdocuments: ard settincisXaaniniistrat-or^jft面X阴密-1V3T?icp|j(翱』iFrror U2B37; 'Sats'; is net a nerWpr of b5q5taclt*

    c :\>flaciJM!<nt5 and settings^atfninistrj't 叶\桌血、時?upp(<i>: see <lecLarati(]>n> of 'SqStach:'

    1El^nTsJpe": iundeclarf'd id聲ntf“肝 s-j|ntdix ffinrnr znis-siiig ■* * br-F口「■ idlrniti-Firt"?'r8

    1str- ; undecl^reif iiJentifier subscript requir电亏 array or pointe『typw 豹nt曲

    SJFlitaK syntax syntax 'iB ± Gii'dieelaired IdeiitiFlei-

    >£ :^da£ulrH!nt&

    £ ;\.dl口EZUlWItM

    c:\dQCunents 测d settin<|sXaitfninistrator^^E\83\3-1X3-1 -cppCS^): c :\d@cuin>er>ts:

    and 5e-ttingsVadninistrat桌前叭3-1\3-1 .Epp(39)

    and jirid ? nd and and jud jind and and arid

    'H-!^

    settim^^Xaidninis 面*叽空-T\拱 1.epp(6e)

    s ift diiini His trat 叶\堂面 \ 93^3-1X3-1 _£|ip(fifi)

    settiniqs% ?dniini5trato(r\*t 面\W3\3-1\3:-19cpp(dn) settings\aidninistratorX:T[kj^B3\3-1\3-1 .cppC^O settings^adninistrator\*面讪叭SI-1\3 D ?tpp価町 £ 讹 tin 护 \ didnini^ trait ar\i jg \ ?3\3-1\3-1 _izp|j(A6) settiniqs^ sflni nistrst 叶\皐 E _ upp W 町

    settings% adninistratorXS. E\83\3-1\3-1. cpp ID settings\adninlstratoir\ijEjX.B3X3-1\3 1 -cppidft) settings% adRlnis tr 贰叶\桌面 \93\3-1\3-1 .epp(6fl)

    >c sVdacdr^nts:l:\d口iciJFirdl:亠 g Adigcuupnts c ^documents c sVdocunents

    >c :^.d口t:!unelbt?

    £ ;\d口Buinnrtt生

    czkdocunents c:\d@cunents

    l z^dacufiehts.

    廿注匚I - iP X r

    ]]\粗播?菌昼、挂文井1中垂找 \ 在文件沖香找I结里\ 沁1|小必叮闊/

    error rrrur error error error rrrdr pri'^r error error frrfli-

    C2IH52

    C21W :

    C21 W: C2D59:

    C211W :

    G21i^;

    C21Uie:

    C2IK9:

    error : a{1

    errar i iii&S-iing 4;'bef 口!{ *■

    error ; qissiniq 4:;' b^f-orp 1) ?■

    error : prissiRg ?:'before idientifier 'Fusli'error : a1'

    I l^uoid^XtackEiiipti/(SqStack*s)/*判断是否为空*/

    ■ return(s->top-■-1);

    int Push(^qStack?£i£jElemT^pB Q)#*{住栈元爭

    {

    if(s->top==Haxs±ze-l)

    return &;

    s=>top**;

    s->diata[s->top]=e;

    return 1

    }

    int Popf SqStack*8rS pElenType 陆)/*出栈一卜元素和

    <

    if(s->t0p-*-1)

    return 0;

    e-s->data[s->top];

    5=>top^-;

    return 1;

    |sAfidlivLni£;t:r^tDF\杲面\$%\色-11\^一1 .£pp(3g):启F『or C2O30: 'clatz11: iis not 詡 oionbor o£ "£q£tgck!Figuration: 3-1 - Win32 Debug d Settings\fidnini5traEor\^0S83X3^1\3-1 r

    |sAfidlivLni£;t:r^tDF\杲面\$%\色-11\^一1 .£pp(3g):启F『or C2O30: 'clatz11: iis not 詡 oionbor o£ "£q£tgck!

    Ariliii mist-rflfrnrA^-: prrnr R?fill9 : 1 rlafa 1: i ■; nnlb a uipnhpr nF a S.nSi-^r:lk

    */typedef s {ElenType^elenl^ax^ize]; int top;/*

    */

    }SqStdck;

    解决方案: ⑴添加typedef char ElemType;

    return(s->top==-1);

    typedef struct <ELen)rjjpe ;

    }Sq£tdch;

    三、程序盘

    提交的程序盘应包含全部的源程序清单和可执行文件。

    相关热词搜索: 实验报告 数据结构 顺序 实验

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问