歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 使用鏈式結構實現堆棧

使用鏈式結構實現堆棧

日期:2017/3/1 9:12:58   编辑:Linux編程

1 鏈式結構的結構體,節點的數據類型。概念:頭指針指向頭節點,和尾節點。

typedef struct node

{

int data;

struct node* next;記錄下一個地址的節點,這裡不能省略struct

}node;

#include

#include

typedef struct node

{

int data;

struct node* naxt;記錄下一個節點的地址

}node;

//定義棧的數據類型

typedef struct

{

node * head;//頭指針

}staclk;

//創建一個類型;

//判斷棧是否為空,

int empty(stack *ps)

{

return NULL==ps->head;

}

// 判斷棧是否為滿

int full(stack *ps)

{

return 0;

}

// 實現入棧

push(stack *ps,int data)

{

//創建新節點

node *pn =(node *)malloc(sizeof(node));

pn ->data =data;

pn->next=NULL;

//插入新節點到頭結點的位置。

pn->next=head;

head =pn;

}

//實現遍歷

void travel(stack *ps)

{

node *p =ps->head;

while(p)

{

printf("棧中的元素有");

p=p->next;

}

printf("\n");

}

//實現出棧

int pop(stack *ps)

{

node *p=ps->head;//准備一個指針記錄要刪除的節點地址

ps->head=ps->head->head;//頭指針指向下一個節點

int temp=p->data;單獨存儲要刪除的節點元素;

free(p);釋放要刪除的節點

p=NULL;

返回取出的節點元素

return temp;

}

//清空棧裡面所有的元素

void clear(stack *ps)

{

while(ps->head)

{node*p=ps->head;//使用臨時指針記錄第一個節點

ps->head =ps->head->next;頭指針指向下一個節點

free(p);

p=NULL

}

}

int main()

{

// 定義棧並且初始化

stack stack;

stack.head=NULL;

return 0;

}

棧的用途

可以找出最近一次的數據。

Copyright © Linux教程網 All Rights Reserved