⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lstack.c

📁 《算法和数据结构——C语言描述》
💻 C
字号:
/*栈链接表示:函数定义*/

#include<stdio.h>
#include<stdlib.h>

#include "lstack.h"

/*申请链栈结构空间,创建一空链接栈,返回指向空链接栈的指针*/
PLinkStack  createEmptyStack_link(void) {
    PLinkStack plstack;
    plstack = (PLinkStack )malloc( sizeof(struct LinkStack));
    if (plstack != NULL)
        plstack->top = NULL;
    else
        printf("Out of space! \n");    
    return plstack;
}

/*判单链形式栈是否为空栈*/
int  isEmptyStack_link( PLinkStack plstack ) {
    return plstack->top == NULL;
}

/* 在栈中压入一元素x */
void push_link( PLinkStack plstack, DataType x ) {	
    PNode  p;
    p = (PNode)malloc( sizeof( struct Node ) );
    if ( p == NULL  )
        printf("Out of space!\n");
    else {	
        p->info = x;
        p->link = plstack->top;
        plstack->top = p;
    }
}

/*出栈*/
void  pop_link( PLinkStack plstack ) { 	  
    if( isEmptyStack_link( plstack ) )
        printf( "Empty stack pop.\n" );
    else {	
        PNode p = plstack->top;
        plstack->top = plstack->top->link;
        free(p);
    }
}

/* 对非空栈求栈顶元素 */
DataType top_link( PLinkStack plstack ) {
    return plstack->top->info;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -