資料結構C語言實現 清空 銷毀乙個棧

2022-03-17 14:03:11 字數 1704 閱讀 4185

**如下:

#include#includetypedef struct 

sqstack;

//////////////////////////////////////

//建立乙個棧

#define stack_size 100

void initstack(sqstack *stack )

stack->top = stack->base;

stack->stacksize = stack_size;

}////////////////////////////////////

//入棧操作

#define stack_more 10

void push(sqstack *stack , char c)

stack->top = stack->base + stack->stacksize;

stack->stacksize = stack->stacksize + stack_more;

}*(stack->top) = c;

stack->top++;

}//////////////////////////////////////

//出棧操作

void pop(sqstack *stack , char *c)

*c = *--(stack->top);

}///////////////////////////////////////

//清空棧

void clearstack(sqstack *stack)

//////////////////////////////////////

//銷毀乙個棧

void destorystack(sqstack *stack)

stack->base=stack->top = null;

stack->stacksize = 0;

}int main()

}printf("壓入字元完成,正在列印字串...\n");

for (size_t i = 0; i < (stack.top - stack.base); i++)

putchar('\n');

printf("請輸入要彈出幾個字元:");

int k;

scanf("%d",&k);

while (k)

printf("彈出字元完成,正在列印字串...\n");

for (size_t i = 0; i < (stack.top - stack.base); i++)

putchar('\n');

printf("接下來你可以選擇清空(輸入1)或者銷毀(輸入2)這個棧:");

scanf("%d",&k);

fflush(stdin);

switch (k)

break;

case 2:

destorystack(&stack);

if(stack.base == null && stack.top == null && stack.stacksize == 0)

break;

default:

break;

}return 0;

}

執行結果:

資料結構C語言實現 銷毀乙個佇列

如下 include includetypedef char elemtype typedef struct qnode qnode queueptr typedef struct linkqueue 建立乙個佇列 void initqueue linkqueue q q front next nu...

資料結構C語言實現 銷毀鍊錶

1.首先,將 list 頭指標 賦值給p,這樣p也指向鍊錶的第乙個結點,成為鍊錶的表頭 2.然後判斷只要p不為空,就將p指向下乙個的指標賦值給q,再釋放掉p 3.之後再將q賦值給p,用來找到下一輪釋放掉的結點的下乙個結點 如下 include includetypedef struct node n...

資料結構 用C語言實現乙個佇列

只允許在一端進行插入資料操作,在另一端進行刪除資料操作的特殊線性表。佇列具有先進先出fifo first in first out 入佇列 進行插入操作的一端稱為隊尾。出佇列 進行刪除操作的一端稱為隊頭。佇列可以以鍊錶和陣列的結構實現,使用鍊錶的結構更具有優勢,因為使用陣列的結構,在出佇列的時候效率...