棧(順序棧,多棧共享技術,動態順序棧,鏈棧)

2021-07-23 09:35:58 字數 2772 閱讀 9887

#include

#include

#define stacksize 10

//建立

typedef

struct seqstack

seqstack;

//初始化

void initstack(seqstack *s)

//入棧

int push(seqstack *s, int elem)

s->top++;

s->elem[s->top] = elem;

return1;}

//出棧

int pop(seqstack *s, int *elem)

*elem = s->elem[s->top];

s->top--;

return1;}

int main()

printf("%d ", s.elem[i]);

}printf("\n前4個元素出棧<:");

for (i = 0; i < 4; i++)

printf("%d ", popelem);

}printf("\n");

system("pause");

return

0;}

#include

#include

#define m 20

//建立

typedef

struct dqstack

dqstack;

//初始化

void initstack(dqstack *d)

//第i號棧入棧

int push(dqstack *d, int elem, int i)

case

1: default:

break;

}return1;}

//第i號棧出棧

int pop(dqstack *d, int *elem, int i)

case

1: default:

break;

}return1;}

int main()

printf("%d ", d.elem[i]);

}printf("\n第1號棧入棧<:");

for (i = 0; i < 5; i++)

printf("%d ", d.elem[--n]);

}printf("\n第0號棧前五個元素出棧<:");

for (i = 0; i < 5; i++)

printf("%d ", elem);

}printf("\n第1號前三個元素棧出棧<:");

for (i = 0; i < 3; i++)

printf("%d ", elem);

}printf("\n");

system("pause");

return

0;}

#include

#include

#include

#define stacksize 20

typedef char elemtype;

//建立

typedef struct stack

sqstack;

//檢查指標

void checkptr(void

*ptr)

//初始化

void initstack(sqstack *s)

//入棧

void push(sqstack *s, int elem)

*(s->top) = elem;

s->top++;

}//出棧

void pop(sqstack *s,elemtype *elem)

//銷毀棧

void desstack(sqstack *s)

int main()

len = s.top-s

.base;//棧當前的長度

for (i =

0; i < len; i++)

printf("d=%d", d);

desstack(&s);//銷毀棧

printf("\n");

system("pause");

return

0;}

#include

#include

typedef

int stackelem;

//定義

typedef

struct node

linkstacknode,*linkstack;

//初始化

void initstack(linkstack *s)

(*s)->next = null;

}//入棧

void push(linkstack *s, stackelem elem)

new->data = elem;

new->next = t->next;

t->next = new;

}//出棧

int pop(linkstack *s, stackelem *elem)

int main()

printf("\n出棧<:");

while (1)

else

break;

}printf("\n");

system("pause");

return

0;}

棧 棧 鏈式棧,順序棧,共享棧

棧也是一種線性表結構,只不過棧的操作是受限的,它的特點就是在棧頂方向新增新的元素,且刪除元素也只能從棧頂方向刪除。因此棧是一種lifo 後進先出 特性的資料結構。壓棧 新的元素放入棧的操作。出棧 從棧中移除乙個元素的操作。因為棧是一種線性結構,所以可以通過前面所學的鍊錶和順序表作為內部實現。我們可以...

順序棧,兩棧共享空間,鏈棧

棧是一種特殊的線性表,線性表的順序儲存結構和鏈式儲存結構同樣適用於棧。lifo 應用 瀏覽網頁時的撤銷回退操作 include include using namespace std define maxsize 1000 typedef int selemtype typedef struct s...

棧,順序棧,鏈棧

棧作為一種限定性線性表,是將表的插入刪除限制為僅在表的一端進行,通常將表中允許插入刪除的一端叫做棧頂 top 因此棧頂的當前位置是動態變化的。棧的另一端叫做棧底 bottom 當棧中沒有元素時稱為空棧。插入操作稱為進棧或入棧,刪除操作稱為出棧或退棧。棧是先進後出的線性表,簡稱為lifo表。棧主要有兩...