数据结构《栈和队列》

栈是限定在表尾进行插入和删除操作的线性表,表头端称为栈底。(LIFO后进先出的特点)
队列是一种先进先出的线性表(FIFO),只允许在表的一端进行插入,在另一端进行删除,插入一端称为队尾,删除一端称为队头。
可以在两端进行插入删除操作的线性表城位置双端队列。

操作方法

  • 01

    入栈: push(sqstack &S,Selemtype e) { if(s.top-s.base >= s.stacksize) { s.base = (elemtype *)realloc(s.base,s.stacksize+STACKINCREAMENT)*sizeof(elemtype)); if(!s.base) exit(overflow) s.top = s.base+s.stacksize; s.stacksize += STACKINCREAMENT; } *s.top ++ = e; return OK; }

  • 02

    出栈: pop(sqstack &s,selemtype e) { if(s.top == s.base) return ERROR; e = *--s.top; return OK; }

  • 03

    进队: enqueue(linkQueue &Q,qelemtype e) { p = (queueptr)malloc(sizeof(qnode)); if(!p) exit(overflow) p->data = e;p->next=null; Q.rear-next = p; Q.rear = p; return OK; }

  • 04

    出队: DEqueue(linkqueue &Q,qelemtype e) { if(Q.front==Q.rear) retrun error; p = Q.front->next; e= p->data; Q.front->next=p->next; if(Q.rear == p) Q.front=Q.rear; free(p); return OK; }

(0)

相关推荐

  • 云计算交互设计师的必备知识!

    作为云计算的交互设计师需要学习哪些?文章为你解答. 最近有不少设计师会跟我聊到,做云计算的交互设计与其他设计师有什么区别吗? 我其实也不知道怎么回答,能够记起的最后一次 TC 类的项目已经是两三年前在 ...

  • 零基础学习C语言

    零基础学习C语言:本人在网上找了很久关于如何学习C语言,本人也是新手不知该如何开始学习,无意中发现这本书慢慢的我找到了学习的头绪!推荐给大家学习 操作方法 01 目录 前言 第一篇 C语言基础 第1章 ...

  • C语言编程基础知识总结

    操作方法 01 在编程语言学习中,学习和巩固基础知识是很重要的,因为用来用去还是遵守最基本的语法规则,小小的错误需要花费双倍的时间去检查,所以选择一开始就写好才是最明智的,C语言数据结构与算法基础知识 ...

  • linux环境编程-IPC 之 msg queue

    消息队列 在UNIX的SystemV版本,AT&T引进了三种新形式的IPC功能(消息队列、信号量、以及共享内存)。但BSD版本的UNIX使用套接口作为主要的IPC形式。Linux系统同时支持这 ...

  • 数据结构-队列

    队列也是一种和限定的线性表,他和栈正好相反,同样这和数据结构在计算机的作用也是非常大的,我们可以通过队列发现好多其他的数据结构和他有关系,同样在我们的生活中也会发现好多这样的,最好理解的是,我们在吃饭 ...

  • 堆和栈的区别

    堆和栈的区别 操作方法 01 一.预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)―   由编译器自动分配释放 ,存放函数的参数值,局部变量的值等 ...

  • 打印机正在打印及正在删除(打印队列堵塞)没反应的解决方法

    打印队列堵塞通常是由于打印机的第一个文件没有正常输出打印,而导致了后面的文件也无法打印 解决打印机“正在删除”及“正在打印”没反应的办法,具体步骤如下: 第一种方法: 关闭打印机电源,然后删除打印任务 ...

  • linux中编写并发队列类

    这篇文章主要介绍了linux中编写并发队列类,功能有:并发阻塞队列、有超时限制、有大小限制 设计并发队列 代码如下: #include <pthread.h> #include <l ...

  • [ext4]12分配机制-关键的数据结构

    在块分配机制中,涉及到几个主要的数据结构。 通过ext4_allocation_request描述块请求,然后基于块查找结果即上层需求来决定是否执行块分配操作。 在分配过程中,为了更好执行分配,记录一 ...