**如下:
#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 入佇列 進行插入操作的一端稱為隊尾。出佇列 進行刪除操作的一端稱為隊頭。佇列可以以鍊錶和陣列的結構實現,使用鍊錶的結構更具有優勢,因為使用陣列的結構,在出佇列的時候效率...