美文网首页
28.顺序线性表-顺序栈-顺序队列

28.顺序线性表-顺序栈-顺序队列

作者: aofeilin | 来源:发表于2018-09-11 17:55 被阅读11次
====================》==========顺序==========》====================》
Status insertList(SqList *L,int i,int data){
    int k;
    //判断L的长度不要超过maxsize
    if (L->length == MAXSIZE){
        return ERROR;
    }
    if (i<1 || i>L->length +1) {
        return  ERROR;
    }
    if (i <= L->length){
        for (k = L->length-1;k>i-1; k--) {
            L->data[k+1] = L->data[k];
        }
    }
    L->data[i-1] = data;
    L->length ++;
    return OK;
}
//删除L的第i个数据元素
Status deleteList (SqList* L,int i,int *data){
    int k;
    if (L->length == 0) {
        return ERROR;
    }
    if (i < 1 ||i > L->length) {
        return ERROR;
    }
    *data = L->data[i-1];
    if (i <= L->length) {
        for (k = i; k < L->length;k++) {
            L->data[k-1] = L->data[k];
        }
    }
    return OK;
}

====================》========栈顺序============》====================》
/* 插入元素e为新的栈顶元素 */
Status Push(SqStack *S,SElemType e){
    if (S->top == MAXSIZE -1) {
        return ERROR;
    }
    S->top++;
    printf("%d",S->top);
    S->data[S->top] = e;
    return OK;
}

/* 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR */
//删除
Status Pop(SqStack *S,SElemType *e){
    if (S->top == -1) {
        return ERROR;
    }
    *e=S->data[S->top];
    S->top--;
    return OK;
}
====================》=========队列顺序==========》====================》

/* 若队列未满,则插入元素e为Q新的队尾元素 */
Status EnQueue(SqQueue *Q,QElemType e)
{
    if ((Q->rear+1)%MAXSIZE == Q->front)    /* 队列满的判断 */
        return ERROR;
    Q->data[Q->rear]=e;            /* 将元素e赋值给队尾 */
    Q->rear=(Q->rear+1)%MAXSIZE;/* rear指针向后移一位置, */
    /* 若到最后则转到数组头部 */
    return  OK;
}

/* 若队列不空,则删除Q中队头元素,用e返回其值 */
Status DeQueue(SqQueue *Q,QElemType *e)
{
    if (Q->front == Q->rear)            /* 队列空的判断 */
        return ERROR;
    *e=Q->data[Q->front];                /* 将队头元素赋值给e */
    Q->front=(Q->front+1)%MAXSIZE;    /* front指针向后移一位置, */
    /* 若到最后则转到数组头部 */
    return  OK;
}

相关文章

  • 28.顺序线性表-顺序栈-顺序队列

  • 栈和队列

    栈和队列 本质上是稍加限制的线性表 栈和队列定义 栈顺序栈定义 链栈结点定义 队列顺序队列 链队列链队类型定义 链...

  • 数据结构的各种代码

    第 02 章 线性表 顺序存储结构 链式存储结构 第 03 章 栈与队列 顺序栈 链栈 两栈共享空间 循环队列 链...

  • 数据结构--线性表

    线性表【队列、栈】(包括顺序存储结构和链式存储结构【链表】) 线性表:零个或多个数据元素的有限序列。线性表的顺序存...

  • 【数据结构】【C#】008-队列:👬👬顺序队列(循环队列)

    C#数据结构:顺序队列 1、 顺序队列的假溢出现象 队列的一种顺序存储称为顺序队列。与顺序栈类似,在队列的顺序存储...

  • 栈和队列

    栈和队列 栈由于是一种特殊的线性表,它也分为顺序存储和链式存储。 顺序栈。类比数组,数组的尾巴模拟栈顶 链栈。 ...

  • 数据结构与算法之数组与链表

    线性表包括数组,链表(单链表,双向链表,循环链表,双向循环链表,静态链表),栈(顺序栈,链式栈),队列(普通队列,...

  • 数据结构与算法之栈与队列

    线性表包括数组,链表(单链表,双向链表,循环链表,双向循环链表,静态链表),栈(顺序栈,链式栈),队列(普通队列,...

  • 数据结构

    线性表 线性表分为顺序表与链表 栈和队列 栈:先进后出队列:先进先出栈和队列都是线性表的特征形式 二叉树 对于相对...

  • 栈与队列

    栈(stack)与队列(queue) Stack 栈的定义: 特殊的线性表 一般指的是顺序栈 栈的抽象数据类型: ...

网友评论

      本文标题:28.顺序线性表-顺序栈-顺序队列

      本文链接:https://www.haomeiwen.com/subject/biougftx.html