分享
 
 
 

顺序栈、链栈基本操作

王朝other·作者佚名  2007-10-09
窄屏简体版  字體: |||超大  

// Stack.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "stdio.h"

#include "stdlib.h"

//*

#define STACK_MAX_SIZE 7

int StackData[STACK_MAX_SIZE] = {'A','B','C','D','E','F','G'};

//*/

/*

#define STACK_MAX_SIZE 14

int StackData[STACK_MAX_SIZE] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N'};

*/

/*顺序栈类型定义*/

typedef struct

{

int data[STACK_MAX_SIZE];

int top;

}sqStack;

/*链栈类型定义*/

struct LinkStack

{

int data;

struct LinkStack *link;

};

typedef struct LinkStack lkStack;

/*顺序栈基本操作函数定义部分*/

void sqInitialize(sqStack *stack)

{

stack->top = 0;

}

int sqIsEmpty(sqStack *stack)

{

if(stack->top == 0)

return(1);

else

return(0);

}

int sqIsFull(sqStack *stack)

{

if(stack->top >= STACK_MAX_SIZE)

return(1);

else

return(0);

}

int sqPush(sqStack *stack,int data)

{

if(sqIsFull(stack))

{

printf("堆栈已満!\n");

return(0);

}

else

{

stack->data[stack->top++] = data;

return(1);

}

}

int sqPop(sqStack *stack,int *p)

{

if(sqIsEmpty(stack))

{

printf("堆栈已空!\n");

return(0);

}

else

{

*p = stack->data[--stack->top];

return(1);

}

}

int sqGetTop(sqStack *stack,int *p)

{

if(sqIsEmpty(stack))

{

printf("堆栈已空!\n");

return(0);

}

else

{

*p = stack->data[stack->top];

return(1);

}

}

void sqWriteValue(sqStack *stack,int array[],int n)

{

int i;

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

if(sqPush(stack,array[i])) printf("Stack[%d] = %c\t",stack->top-1,array[i]);

}

void sqPrintValue(sqStack *stack)

{

int StackData,i;

i=0;

while(sqPop(stack,&StackData))

printf("Stack[%d] = %c\t",stack->top,StackData);

printf("\n");

}

/*链栈基本操作函数定义部分*/

void lkInitialize(lkStack *top)

{

top = NULL;

}

int lkIsEmpty(lkStack *top)

{

if(top == NULL)

return(1);

else

return(0);

}

int lkPush(lkStack *top,int data)

{

lkStack *q;

q = (lkStack *)malloc(sizeof(lkStack));

if(q==NULL)

return(0);

else

{

q->data = data;

q->link = NULL;

top->link = q;

top = q;

return(1);

}

int lkPop(struct LinkStack *stack,int *p)

{

struct LinkStack *q;

if(lkIsEmpty(stack))

{

printf("堆栈已空!\n");

return(0);

}

else

{

q = stack;

*p = stack->data;

stack = stack->next;

//free(q);

return(1);

}

}

int lkGetTop(struct LinkStack *stack,int *p)

{

if(lkIsEmpty(stack))

{

printf("堆栈已空!\n");

return(0);

}

else

{

*p = stack->data;

return(1);

}

}

void lkWriteValue(struct LinkStack *stack,int n)

{

int i;

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

if(lkPush(stack,i*10)) printf("Stack[%d] = %d\t",i,i*10);

}

void lkPrintValue(struct LinkStack *stack,int n)

{

int StackData,i;

i=0;

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

{

lkPop(stack,&StackData);

printf("Stack[%d] = %d\t",i++,StackData);

}

printf("\n");

}

int main(int argc, char* argv[])

{

sqStack *stack1;

struct LinkStack *stack2;

//顺序栈处理部分

sqInitialize(stack1);

printf("\n顺序栈[入栈]数据.........\n");

sqWriteValue(stack1,StackData,STACK_MAX_SIZE);

printf("\n顺序栈[出栈]数据.........\n");

sqPrintValue(stack1);

/*

//链栈处理部分

lkInitialize(stack2);

printf("\n链栈入栈数据.........\n");

lkWriteValue(stack2,10);

printf("\n链栈出栈数据.........\n");

lkPrintValue(stack2,10);

*/

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有