91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

發布時間:2020-07-20 20:02:02 來源:網絡 閱讀:109 作者:Lee_1985 欄目:編程語言

棧是一種后進先出的數據結構,也是在程序中用的較多的一種方法,在C語言函數參數傳遞的入棧過程就是一種棧的數據結構,做個比喻就是×××的彈夾,壓入×××,后壓入彈夾的×××,先被射擊出槍膛。

頭文件:

/***************************************************************************************************** 
 *Copyright:Yue Workstation 
 * 
 *FileName:Stack.h 
 * 
 *Function:棧相關數據定義和函數聲明 
 * 
 *Author:Abel Lee 
 * 
 *CreateOn:2011-5-3 
 * 
 *Log:2011-5-3 由Abel Lee創建 
 *****************************************************************************************************/ 

#ifndef STACK_H 
#define STACK_H 

#include "global.h" 

#define STACKINCREMENT 10 

typedef struct _stack 
{ 
    ElemType *base; 
    ElemType *top; 
    int stacksize; 
}SqStack; 

int InitStack(SqStack *S); 
int GetTop(SqStack *S,ElemType *e); 
int Push(SqStack *S,ElemType e); 
int Pop(SqStack *S,ElemType *e); 

#endif

源文件:

/***************************************************************************************************** 
 *Copyright:Yue Workstation 
 * 
 *FileName:Stack.c 
 * 
 *Function:棧全基本操作 
 * 
 *Author:Abel Lee 
 * 
 *CreateOn:2011-5-3 
 * 
 *Log:2011-5-3 由Abel Lee創建 
 *****************************************************************************************************/ 

#include "../inc/Stack.h" 

/**************************************************************************************************** 
 *Function Name:InitStack 
 * 
 *Function:初始化一個棧 
 * 
 *Parameter:     S:棧的首部 
 * 
 *Return Value:成功返回0,失敗返回-1 
 * 
 *Author:Abel Lee 
 * 
 *Log:2011-5-24 
 ***************************************************************************************************/ 
int InitStack(SqStack *S) 
{ 
    S->base = (ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType)); 

    if(S->base == NULL) 
    { 
        perror("Malloc error,InitStack error!\n"); 
        return -1; 
    } 

    S->top = S->base; 
    S->stacksize = STACK_INIT_SIZE; 

    return 0; 
} 

/**************************************************************************************************** 
 *Function Name:GetTop 
 * 
 *Function:獲取棧頂元素 
 * 
 *Parameter:     S:棧的首部 
 *               e:保存獲取的元素 
 * 
 *Return Value:成功返回0,失敗返回-1 
 * 
 *Author:Abel Lee 
 * 
 *Log:2011-5-24 
 ***************************************************************************************************/ 
int GetTop(SqStack *S,ElemType *e) 
{ 
    if(S->top == S->base) 
    { 
        printf("The Stack is NULL!\n"); 
        return -1; 
    } 
    *e = *(S->top - 1); 

    return 0; 
} 

/**************************************************************************************************** 
 *Function Name:Push 
 * 
 *Function:入棧操作 
 * 
 *Parameter:     S:站的首部 
 * 
 *Return Value:線性表的長度 
 * 
 *Author:Abel Lee 
 * 
 *Log:2011-5-24 
 ***************************************************************************************************/ 
int Push(SqStack *S,ElemType e) 
{ 
 if (S->top - S->base >= S->stacksize) 
 { 
        S->base = (ElemType *) realloc(S->base,(S->stacksize + STACKINCREMENT) * sizeof(ElemType)); 
        if (S->base == NULL) 
        { 
            perror("realloc error!\n"); 
            return -1; 
        } 
        S->top = S->base + S->stacksize; 
        S->stacksize += STACKINCREMENT; 
    } 
    *S->top++ = e; 

    return 0; 
} 

/**************************************************************************************************** 
 *Function Name:Pop 
 * 
 *Function:彈棧操作 
 * 
 *Parameter:     S:棧的首部 
 *               e:保存出棧元素的值 
 * 
 *Return Value:成功返回0,失敗返回-1 
 * 
 *Author:Abel Lee 
 * 
 *Log:2011-5-24 
 ***************************************************************************************************/ 
int Pop(SqStack *S,ElemType *e) 
{ 
    if (S->top == S->base) 
    { 
        perror("The stack is NULL!\n"); 
        return -1; 
    } 

    S->top--; 
    *e = *(S->top); 

    return 0; 
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西昌市| 浠水县| 筠连县| 开原市| 龙里县| 拉萨市| 航空| 宜章县| 增城市| 绥宁县| 克东县| 清水县| 神农架林区| 凉城县| 湘乡市| 阿图什市| 额济纳旗| 宜宾市| 麟游县| 浑源县| 兴城市| 九江市| 莱州市| 瑞金市| 应城市| 平原县| 沭阳县| 常州市| 凉山| 新源县| 沾益县| 贵州省| 泗阳县| 平乡县| 红安县| 北京市| 云梦县| 昭苏县| 吉安县| 正安县| 宜君县|