歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> 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