鏈棧的基本操作

鏈棧的基本操作實現代碼如下:

#include<iostream>

using namespace std;

#define TRUE 1

#define FALSE 0


//鏈棧的結構

typedef struct node

{

int data;

struct node *next;

}LinkStackNode;

typedef LinkStackNode *LinkStack;


//鏈棧進棧

int Push(LinkStack top, int x)//將數據元素x壓入棧top中

{

LinkStackNode *temp;

temp = (LinkStackNode *)malloc(sizeof(LinkStackNode));

if (temp==NULL)//申請空間失敗

{

return FALSE;

}

temp->data= x;

temp->next = top->next;

top->next = temp;//修改當前棧頂指針

return TRUE;

}


//鏈棧出棧

int Pop(LinkStack top, int *x)//將棧top的棧頂元素彈出,放到x所指的存儲空間中

{

LinkStackNode *temp;

temp = top->next;

if (temp == NULL)//棧爲空

{

return FALSE;

}

top->next = temp->next;

*x=temp->data ;

free(temp);//釋放存儲空間

return TRUE;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章