数据结构 第三章栈和队列

第三章 栈和队列选择题知识点掌握栈和队列的特点,并能在相应的应用问题中正确选用栈堆栈是一种只允许在表的一端进行插入操作和删除操作的线性表。允许操作的一端称为栈顶,栈顶元素的位置由一个称为栈顶指针的变量给出。当表中没有元素时,称之为空栈。队列队列简称队 。是一种只允许在表的一端进行插入操作,而在表的另一端进行删除操作的线性表。允许插入的一端称为队尾,队尾元素的位置由rear指出; 允许删除的一端称为队头, 队头元素的位置由front指出。熟练掌握栈的两种存储结构的基本操作实
摘要由CSDN通过智能技术生成

第三章 栈和队列

选择题

知识点
  1. 掌握栈和队列的特点,并能在相应的应用问题中正确选用


    • 堆栈是一种只允许在表的一端进行插入操作和删除操作的线性表。允许操作的一端称为栈顶,栈顶元素的位置由一个称为栈顶指针的变量给出。当表中没有元素时,称之为空栈。

    • 队列
      队列简称队 。是一种只允许在表的一端进行插入操作,而在表的另一端进行删除操作的线性表。允许插入的一端称为队尾,队尾元素的位置由rear指出; 允许删除的一端称为队头, 队头元素的位置由front指出。

  2. 熟练掌握栈的两种存储结构的基本操作实现算法,特别应注意栈满和栈空的条件

    顺序存储结构

    1. 构造原理

      描述堆栈的顺序存储结构最简单的方法是利用一维数组 STACK[ 0..M–1 ] 来表示,同时定义一个整型变量(不妨取名为top ) 给出栈顶元素的位置。

    2. 溢出

      上溢 —— 当堆栈已满时做插入操作。( top = M – 1 )

      下溢 —— 当堆栈为空时做删除操作。( top = –1 )

    3. 定义

      #define M 100
      SElemType STACK[M];
      int top;
      
    4. 基本操作

      初始化

      void Init(int &top){
             
      	top = -1;
      }
      

      判断是否为空

      int Empty(int top){
             
      	return top == -1;
      }
      

      判断是否栈满

      int Full(int top){
             
      	return top == M-1;
      }
      

      插入

      int Push(SElemType STACK[],int top,SElemType item){
             
      
      	if(Full(top)){
             
      		return 0;
      	}
      	else{
             
      		STACK[++top] = item;
      		return 1;
      	}
      
      }
      

      删除

      int Pop(SElemType STACK[],int &top){
             
      	if(Empty(top)){
             
      		return 0;
      	}
      	else{
             
      		SElemType item = STACK[top--];
      		return 1;
      	}
      }
      

    多栈共享问题

    STACK[0…M-1]
    top[0]、 top[1] 分别为第1个与第2个栈的栈顶元素指针。

    插入

     当i=1时,将item 插入第1个栈,
     当i=2时, 将item 插入第2个栈。
    
    int PUSH( SElemType STACK[],int top[],int i,SelemType item){
         
    	if(top[0]==top[1]1){
         
    		return 0;
    	}
    	else{
         
    		if(i==1){
                 
    				STACK[++top[0]]=item;
    		}
    		else{
         
    			STACK[– –top[1]]=item;
    		}
    		return 1;
    	}
    }
    

    删除
    当i=1时,删除第1个栈的栈顶元素,当i=2时,删除第2个栈的栈顶元素。

    int POP(SElemType STACK[ ],int top[ ],int i, SElemType item ){
         
    	if(i==1){
         
    		if(top[0]==1)   
    				return 0;
    		else{
         
    			item=STACK[top[0
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值