#ifndef stack_link_
#define stack_link_
#include typedef int elementtype;
typedef struct _stack_link
linkstack;
linkstack* init_link_stack();
bool push(linkstack *stack, int value);//入棧
int pop(linkstack *stack);//出棧
bool display_stack(linkstack *stack);//顯示棧內所有元素值
bool isempt(linkstack *stack);//判斷棧是否為空
int get_stack_length(linkstack *stack);//獲取棧中元素的個數
#endif
#include #include #include "stack_link.h"
linkstack* init_link_stack()
head->date = 0;
head->next = null;
return head;}/*
fundction: 用鍊錶的頭插法模擬入棧操作
*/bool push(linkstack *stack, int value)
linkstack* node = (linkstack*)malloc(sizeof(linkstack));
if(null == node)
node->date = value;
node->next = stack->next;
stack->next = node;
return true;}/*
用頭刪法模擬出棧操作
*/int pop(linkstack *stack)
if(0 == get_stack_length(stack))
if (stack->next)
return item;
}int get_stack_length(linkstack *stack)
linkstack *p = stack->next;
while(p)
return len;
}bool isempt(linkstack *stack)
bool display_stack(linkstack *stack)
linkstack *p = stack->next;
while(p)
return true;
}int main()
display_stack(stack);
printf("stack len is %d \n",get_stack_length(stack));
printf("pop date %d \n", pop(stack));
return;
}
資料結構 單鏈表實現棧
package 資料結構 public class link package 資料結構 public class linkstack 不為空,將新節點的next指向原棧頂 newlink.next top 新節點成為棧頂 top newlink 出棧 public link pop link tem...
資料結構 單鏈表實現
線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素 這組儲存單元可以是連續的,也可以是不連續的 因此,為了表示每個資料元素與其直接後繼資料元素之間的邏輯關係,對資料元素來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊 即直接後繼的儲存位置 這兩部分資訊組成資料元素的...
資料結構 單鏈表實現
在鏈式儲存中,節點之間的儲存單元位址可能是不連續的。鏈式儲存中每個結點都包含兩部分 儲存元素本身的資料域和儲存結點位址的指標域。結點中的指標指向的是下乙個結點,也就是儲存的下乙個結點的位址。1.建立鍊錶 在建立鍊錶時,頭結點不儲存資料,但可以儲存鍊錶的資訊。struct header 儲存資料的結點...