数据结构(栈与队列)——栈的顺序表示和实现、队列的链式表示和实现

本文通过C语言实现顺序栈的基本操作,包括初始化、插入、删除、查看栈顶元素以及栈的遍历。同时,介绍了链队列的建立、入队、出队及遍历等操作,详细探讨了数据结构中的栈和队列概念。
摘要由CSDN通过智能技术生成

实验内容:

  1. 编写一个程序实现顺序栈的各种基本运算。
  2. 实现队列的链式表示和实现。
    实验步骤:
    1.初始化顺序栈
  3. 插入元素
  4. 删除栈顶元素
  5. 取栈顶元素
  6. 遍历顺序栈
  7. 置空顺序栈
  8. 初始化并建立链队列
  9. 入链队列
  10. 出链队列
  11. 遍历链队列

1、栈的顺序表示和实现

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

#define TRUE       1
#define FALSE      0
#define OK         1
#define ERROR      0
#define INFEASIBLE -1
#define OVERFLOW   -2
typedef int StackElementType;

//----- 栈的顺序存储表示 -----
#define  Stack_Size  100
#define  STACKINCREMENT   10

typedef struct
{
   
	StackElementType elem[Stack_Size]; //用来存放栈中元素的一维数组
	int top;          /*用来存放栈顶元素的下标,top为-1表示空栈*/
}SeqStack;

/*初始化顺序栈函数*/
void InitStack(SeqStack *S)
{
   
	/*构造一个空栈S*/
  	S->top = -1;
}

/*判栈空*/
int IsEmpty(SeqStack *S) /*判断栈S为空栈时返回值为真,反之为假*/
{
   
	return(S->top==-1?TRUE:FALSE);
}

/*入栈函数*/
int Push(SeqStack *S,StackElementType x)
{
   
	//请完成本函数的功能
	if(S->top==Stack_Size-1) return (FALSE);/*栈已满*/
	S->top++;
	S->elem[S->top] = x;
	return (TRUE);
}
/*出栈函数*/
int Pop(SeqStack *S,StackElementType *x)
{
     
	/* 将栈S的栈顶元素弹出,放到x所指的存储空间中 */
	//请完成本函数的功能
	if(S->top==-1)
		return (FALSE);
	else
	{
   
		*x = S->elem[S->top];
		S->top--;
		return (TRUE);
	}
}
/*获取栈顶元素函数*/
int GetTop(SeqStack *S,StackElementType *x)
{
     
/* 将栈S的栈顶元素弹出,放到x所指的存储空间中,但栈顶指针保持不变 */
//请完成本函数的功能
	if(S->top == -1)
		return (FALSE);
	else
	{
   
		*x = S->elem[S->top];
		return (TRUE); 
	}
}

int StackDisplay(SeqStack 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值