普及组Day3教案

栈:栈就是先进后出,比如我把数字3、5、2放入栈中,然后第一次从栈中取出来的数字是2,然后取出来的数字是5,这时如果再向栈中放入数字9,下一次取出来的数字是9,再下次取出来的数字是3,这时候栈空了。栈可以想象成一个大坑,先放进去的东西在下面,后放进去的东西在上面,取东西时上面的东西先被取出来。

用数组模拟栈:

int stack[100], t;
void push(int x) {
    stack[t++] = x;
}
int pop() {
    return stack[--t];
}

队列:队列就是先进后出,就像排队一样,先到的人先出来。比如把3、5、2放入队列中,第一次出队的数是3,然后是5,接下来让9入队,下一个出队的数是2,再下一个出队的数是9,然后队列空。

用数组模拟队列:

int queue[100], head, tail;
void push(int x) {
    queue[tail++] = x;
}
int front() {
    return queue[head];
}
void pop() {
    head++;
}

链表:Luogu P1160 队列安排

#include<cstdio>
#include<cstring>
int a[100010][3],n,m;
//a[i][2]表示学号为i的同学右边同学的学号
//a[i][3]表示学号为i的同学左边同学的学号
int main()
{
    scanf("%d",&n); int j=1;
    memset(a,0,sizeof(a)); a[1][1]=1;
    for(int i=2;i<=n;i++)
    {
        int x,y; scanf("%d %d",&x,&y);
        a[i][1]=i;
        if(y==0)
        //插入左边
        { 
            a[a[x][3]][2]=i; a[i][2]=x;
            a[i][3]=a[x][3]; a[x][3]=i;
            if(x==j) j=i;
            //比较麻烦,要改链表
        }
        else
        //插入右边
        {
            a[i][2]=a[x][2]; a[a[x][2]][3]=i;
            a[x][2]=i; a[i][3]=x;
        }
    }
    scanf("%d",&m);
    for(int i=1;i<=m;i++)
    {
        int x; scanf("%d",&x);
        if(a[x][1]!=0)
        //该同学还在 
        {
            a[x][1]=0;
            //踢掉……(好可怜) 
            a[a[x][3]][2]=a[x][2];
            a[a[x][2]][3]=a[x][3];
            n--;
            if(x==j) j=a[x][3];
        }
    }
    int i=1,x=j;
    while(i<=n)
    {
        printf("%d ",a[x][1]);
        x=a[x][2]; i++;
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,794评论 1 32
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 11,317评论 0 13
  • 我最近一章一章读的就是武志红的《身体知道答案》,昨天和今天就一直在看好像洋葱一样的痛苦! 书中说到,我们痛苦到底是...
    颠颠阅读 2,540评论 0 0
  • 【周日轻松话题】你最想去的旅游目的地是哪里? 九寨沟
    好听的暖阳阅读 1,098评论 0 0
  • 风斑驳了岁月,雨淋湿了思绪,雾朦胧了记忆,雪锤炼了梦想。岁月随风飘然而逝,不觉之间皱纹爬上额头;曾经年少张狂...
    a96c102392c4阅读 3,247评论 0 0