程序员面试宝典之数据结构----入栈与出栈

来源:互联网 发布:步步高v205软件下载 编辑:程序博客网 时间:2024/05/21 06:51

出栈和入栈的实现与上一篇的队列的入队与出队处理方式基本相同,此处要注意栈的出栈操作。


#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;typedef struct Node{    int data;    struct Node *next;}node;typedef struct Stake    //notice :栈的数据结构只是包括两个节点指针(bottom and top);{    node* bottom;    node* top;}stake;//入栈stake* push(stake* My_stake,int x){    node* s;    s = (node*)malloc(sizeof(node));    s->data = x;    s->next = NULL;    if(My_stake->bottom == NULL)    {        My_stake->bottom = s;        My_stake->top = s;    }    else    {        My_stake->top->next = s;        My_stake->top = s;    }    return My_stake;}//出栈stake* pop(stake* My_stake){    node*p;int x;    if(NULL == My_stake->bottom)    {        printf("Noting to pop !!!WRONG");    }    else    {        x = My_stake->bottom->data;        p = My_stake->bottom;        if(My_stake->bottom == My_stake->top)        {            My_stake->bottom = NULL;            My_stake->top = NULL;        }        else        {            while(p->next != My_stake->top)            {                p = p->next;            }            My_stake->top = p;            My_stake->top->next = NULL;//chu zhan        }        return My_stake;    }}


原创粉丝点击