zoukankan      html  css  js  c++  java
  • 数据结构学习记录_2019.02.26

    • 堆栈:具有一定的约束,只在一端插入和删除,先入后出。
    • 堆栈的常见5项操作:

    (1)生成空堆栈,CreatStack( );

    (2)判断堆栈S是否已满

    (3)push,Push(S,A);Push(S,B);

    (4)判断堆栈元素是否为空,IsEmpty(S);

    (5)pop,x=Pop(S);x=Pop(S);

    • 堆栈的顺序存储结构:通常由一个一维数组和一个记录栈顶元素位置的变量组成;
    • 若数组和栈顶元素位置标志不组成结构,直接传入函数,那么因为栈顶元素位置top变量因为是局部变量,只能在函数内使用,因此不会被修改;因此宜将结构作为参数传入函数进行操作;
    • 堆栈的链式存储实现:在链首进行插入和删除操作;
    • 函数的其他应用:

    (1)函数调用及递归实现

    (2)深度优先搜索

    (3)回溯算法

    (4)。。。

    • 队列(Queue):具有一定约束的线性表---只能在一端插入,而在另一端删除;(入队列、出队列)
    • 先进先出:FIFO
    • 队列的常见5项操作:

    (1)生成长度为MaxSize的空队列;

    (2)判断队列Q是否已满;

    (3)插入;

    (4)判断是否为空;

    (5)将队头元素从队列中删除并返回;

    • 队列的顺序存储:一维数组+int front +int rear
    • 循环队列:节省空间
    • 队列的链式存储:(链首做插入和删除都方便;链尾做插入没问题,但删除后不知道上一个在哪里)front在链首做删除,rear在链尾做插入)
    • 用两个堆栈实现一个队列:push a;pop a;push b; pop b;
    • 多项式的表示
    • 数组实现多项式:动态数组(事先知道数组的大小)(较好的实现方法)
    • 链表实现多项式:
    • typedef struct PolyNode *Polynomial;//定义结构指针Polynomial ; 
      struct PolyNode
              {
                  int coef;
                  int expon;
                  Polynomial link;
              };
    • 程序框架搭建

    int main()

    {

    读入多项式;

    乘法运算并输出;

    加法运算并输出;

    return 0;

    }

    int main()

    {

    Polynomial P1,P2,PP,PS;

    P1=ReadPoly();

    P2=ReadPoly();

    PP=Mult(P1,P2);

    PrintPoly(PP);

    PS=ADD(P1,P2);

    PrintPoly(Ps);

    return 0;

    }

    • %03d:输出3位格式,不足3位则在左边补0;
    • %.1lf:输出四舍五入保留1位小数;
    hello world~
  • 相关阅读:
    Mybatis整理
    Spring获取json和表单
    Mqtt(paho)重连机制
    Redis无法获取资源(Could not get a resource from the pool)
    SSM+Maven+Redis框架学习
    第一章 Zookeeper理论基础
    RocketMQ和Kafka对比
    Kafka工作原理与过程
    Kafka介绍
    JVM调优
  • 原文地址:https://www.cnblogs.com/Bran-don/p/10436883.html
Copyright © 2011-2022 走看看