国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

舊雨新知9的個(gè)人空間 http://www.qingdxww.cn/space-uid-41802.html [收藏] [復(fù)制] [RSS]

博客

順序棧的各種基本運(yùn)算

已有 1829 次閱讀2011-8-10 13:08

實(shí)驗(yàn)內(nèi)容與要求:

 

編寫(xiě)一個(gè)程序,實(shí)現(xiàn)順序棧的各種基本運(yùn)算,并在基礎(chǔ)上完成以下功能:

1)       初始化順序棧;

2)       判斷順序棧是否為空;

3)       依次進(jìn)棧元素a,b,c,d,e

4)       判斷順序棧是否為空;

5)       輸出棧長(zhǎng)度;

6)       輸出從棧頂?shù)綏5椎脑兀?SPAN lang=EN-US>

7)       讀出棧頂元素;

8)       刪除棧頂元素;

9)       輸出從棧頂?shù)綏5椎脑兀?SPAN lang=EN-US>

10)    判斷順序棧是否為空;

11)    釋放棧。

 

 

代碼如下:

 

#include<stdio.h>

#include<malloc.h>

#include<stdlib.h>

 

#define TRUE  1

#define FALSE 0

#define OK 1

#define ERROR 0

#define NULL  0

#define OVERFLOW -2

 

typedef int Status;

typedef char SElemType;

Status visit(SElemType e);

 

#define STACK_INIT_SIZE  100  // 棧存儲(chǔ)空間的初始分配量

#define STACKINCREMENT  10    // 存儲(chǔ)空間分配增量

typedef struct {

   SElemType  *base;            // 存儲(chǔ)數(shù)據(jù)元素的數(shù)組

   SElemType  *top;             // 棧頂指針

   int stacksize;               // 當(dāng)前分配的棧空間大小,sizeof(SElemType)為單位

}SqStack;

 

Status InitStack (SqStack &S) {

       // 構(gòu)造一個(gè)空棧S

       S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));

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

       S.top = S.base;

       S.stacksize = STACK_INIT_SIZE;

       return OK;

}// InitStack

 

Status DestroyStack (SqStack &S) {

       // 銷(xiāo)毀棧S

       free(S.base);

       S.base=NULL;

       S.top=NULL;

       S.stacksize=0;

       return OK;

}// DestroyStack

 

Status StackEmpty (SqStack S) {

       // 判斷棧S是否為空

       if(S.top==S.base)

              return TRUE;

       else

              return FALSE;

}// StackEmpty

 

Status Push (SqStack &S, SElemType e) {

       // 插入元素e為新的棧頂元素

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

              // 棧滿(mǎn),追加存儲(chǔ)空間

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

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

              if (!S.base) exit (OVERFLOW);  //存儲(chǔ)分配失敗

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

              S.stacksize += STACKINCREMENT;

       }

       *S.top++ = e;

       return OK;

}// Push

 

int StackLength (SqStack S) {

       // 返回S的元素個(gè)數(shù),即棧的長(zhǎng)度

       return S.top-S.base;

}// StackLength

 

Status GetTop (SqStack S, SElemType &e) {

       // 若棧不空,則用e返回S的棧頂元素

       if(S.top==S.base)  return ERROR;

       e = *(S.top-1);

       return OK;

}// GetTop

 

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

       // 若棧不空,則刪除S的棧頂元素

       if(S.top==S.base)  return ERROR;

       e= * --S.top;

       return OK;

}// Pop

 

Status StackTraverse (SqStack S, Status( *visit)(SElemType)) {

       // 遍歷棧

       while(S.top!=S.base)

    visit(*--S.top);

    return OK;

}// StackTraverse

 

void main() {

       // 主函數(shù)

       SElemType e;

       SqStack S;

       printf("(1)初始化順序棧。\n");

       InitStack(S);

       printf("(2)判斷順序棧是否為空:\n");

       StackEmpty(S);

       printf("(3)依次進(jìn)棧元素a,b,c,d,e:\n");

       Push(S,'a');

       Push(S,'b');

       Push(S,'c');

       Push(S,'d');

       Push(S,'e');

       printf("(4)判斷順序棧是否為空:\n");

       StackEmpty(S);

       printf("(5)輸出棧長(zhǎng)度:%d\n",StackLength(S));

       printf("(6)輸出從棧頂?shù)綏5椎脑?/SPAN>:\n");

       StackTraverse(S,visit);

       printf("(7)讀出棧頂元素:%d\n",GetTop(S,e));

       printf("(8)刪除棧頂元素:%d\n",Pop(S,e));

       printf("(9)輸出從棧頂?shù)綏5椎脑?/SPAN>:\n");

       StackTraverse(S,visit);

       printf("(10)判斷順序棧是否為空\n");

       StackEmpty(S);

       printf("(11)釋放棧。");

       DestroyStack(S);

}


路過(guò)

雞蛋

鮮花

握手

雷人

評(píng)論 (0 個(gè)評(píng)論)

facelist

您需要登錄后才可以評(píng)論 登錄 | 立即注冊(cè)

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
返回頂部
主站蜘蛛池模板: 麻豆免费传媒视频在线 | 俄罗斯人与动物xxxx | 向日葵app看片视频在线观看 | 亚洲高清在线观看播放 | 一区二区三区四区在线视频 | 四虎最新永久免费网址 | 国产区香蕉精品系列在线观看不卡 | 国产精品精品国产 | 少妇太爽了在线观看 | 国产麻豆videoxxxx实拍 | 91麻豆精品国产高清在线 | 亚洲天堂亚洲天堂 | 国产人成午夜免费噼啪视频 | 日韩伦理在线高清视频播放免费 | 国产精品青青 | 一区在线免费 | 日本在线不卡一区 | 99在线视频播放 | 免费高清视频日本 | 亚洲视频一区二区在线观看 | 在线观看 日韩 | a欧美在线| 日韩欧美亚洲国产 | 日本不卡高清免费v日本 | 国产免费卡一卡三卡乱码 | 免费国产成人 | 日韩视频区 | 97色婷婷成人综合在线观看 | 中文字幕高清有码在线中字 | 成人欧美一区二区三区视频 | 轻点灬大ji巴太粗太大了小说 | 麻豆国产13p| 99精品欧美一区二区三区 | 久久国产乱子伦精品免费不卡 | 精品资源在线 | 国产成人亚洲合集青青草原精品 | 91手机在线视频观看 | 国产精品久久大陆 | 日本亚洲最大的色成网站www | 嗯好爽| 成人99国产精品 |