首页 > 其他分享 >CSP-J初赛知识点总复习( 3.3链式栈 3.4链式队列3.5链表习题)

CSP-J初赛知识点总复习( 3.3链式栈 3.4链式队列3.5链表习题)

时间:2024-09-04 09:25:59浏览次数:15  
标签:知识点 top 初赛 else Queue 链式 Stack NULL order

链式栈:(代码)

#include <bits/stdc++.h>
using namespace std;
//栈元素
struct Stack
{
    int data;
    struct Stack *next;
};
Stack *top = NULL;//栈顶指针
//入栈
void push(int x)
{
    Stack *p = new Stack;
    p->data = x;
    p->next = top;
    top = p;//修改栈顶位置
} 
//出栈
void pop()
{
    Stack *p = top;
    if(p != NULL)
	{
        cout<<p->data<<"出栈"<<endl;
        p = p->next;
        delete top;
        top = p;//修改指针位置
    }
	else
	{
        cout<<"栈空"<<endl;
    }
} 
//获得栈长度
int getlen()
{
    int len = 0;
    Stack *p = top;
    while(p != NULL)
	{
        len++;
        p = p->next;
    }
    return len;
} 
//显示栈元素
void display()
{
    Stack *p = top;
    while(p != NULL)
	{
        cout<<p->data<<" ";
        p = p->next;
    }
    cout<<endl;
} 
int main()
{
    int order,x;
    cout<<"输入指令:"<<endl;
    while(1 == 1)
	{
        cout<<"1:入栈,2:出栈,3:显示,4:求栈长!"<<endl;
        cin>>order;
        if(order == 1)
		{
            cin>>x;
            push(x);
            display();
        }
		else if(order == 2)
		{
            pop();
            display();
        }
		else if(order == 3)
		{
            display();
        }    
		else if(order == 4)
		{
            cout<<getlen()<<endl;
        }
    }
    return 0;
}

链式队列:(代码)

#include <bits/stdc++.h>
using namespace std;
//队列节点
struct Queue
{
   int data;
   struct Queue *next;
};
Queue *front = NULL;//队头
Queue *rear = NULL;//队尾
//入队
void add(int value)
{
   Queue *e = new Queue;
   e->data = value;
   e->next = NULL;
   //队列第一个元素
   if(front == NULL)
   {
       front = e;
   }
   else
   {   	
       rear->next = e;
   }
   rear = e;
} 
//出队
void del()
{
   Queue *t;
   //如果对列有元素
   if(front != NULL)
   {
       cout<<front->data<<"出队"<<endl;
       t = front;
       front = front->next;
       if(front == NULL) rear = NULL;
       delete t;
    
	}
	else
	{
        cout<<"队列空"<<endl;
    } 
}
//显示队
void display()
{
    Queue *p = front;
    while(p != NULL)
	{
        cout<<p->data<<" ";
        p = p->next;
    }
    cout<<endl;
}
int main()
{
    int order,x;
    cout<<"输入指令:"<<endl;
    while(1 == 1)
	{
        cout<<"1:入队,2:出队,3:显示队!"<<endl;
        cin>>order;
        if(order == 1)
		{
            cin>>x;
            add(x);
            display(); 
        }
		else if(order == 2)
		{
            del();
            display();
        }
		else if(order == 3)
		{
            display();
        }
    }
    return 0;
}

标签:知识点,top,初赛,else,Queue,链式,Stack,NULL,order
From: https://blog.csdn.net/weixin_60445850/article/details/141883994

相关文章

  • 20240903_190143 从清华到MIT知识点
    分词库的安装下载只需要一次即可pipinstalljieba分词的使用精准模式默认二级使用精准模式importjiebali=jieba.lcut(句子)全模式importjiebali=jieba.lcut(句子,cut_all=True)词频统计li=["a","b","a"]d={}forwinli: #查看这个w在字典中有几......
  • 使用ESP8266-01s的一些知识点
    在这里发表自己并记录自己在做项目的一些问题以及注意事项关于ESP8266通过API接口物联网技术获取当前天气以及当前时间的步骤:1.AT (进入AT指令模式)应答:OK2.AT+CWMODE=1 (设置为STA模式)应答:OK//设置工作模式1:station模式2:AP模式3:兼容AP+station模式3.AT+RS......
  • 初赛模拟题一
    初赛模拟题一T1(C++%)C++"%"的规则\[a\%b=c\]\[c=a-\lfloor\frac{a}{b}\rfloor*b\]\(\lfloor\rfloor\)的规则:向0取整,如\((-9)/5=-1\),\(9/5=1\)T3(GDB)GDB全称“GNUsymbolicdebugger”,从名称上不难看出,它诞生于GNU计划(同时诞生......
  • Java小白一文讲清Java中集合相关的知识点(二)
    ListList接口和常用方法基本介绍List接口是Collection接口的子接口List集合类中的元素有序–即添加顺序和取出顺序一致、且可重复publicclassJourney{@SuppressWarnings({"all"})publicstaticvoidmain(String[]args){Listlist=newArray......
  • 信息学奥赛初赛天天练-82-NOIP2014普及组-完善程序-机器语言、汇编语言、高级语言、计
    1NOIP2014普及组基础题11以下哪个是面向对象的高级语言()A汇编语言BC++CFortranDBasic2TB代表的字节数是()A2的10次方B2的20次方C2的30次方D2的40次方3二进制数00100100和00010101的和是()A00101000B001010......
  • uniapp基础知识点补充
    一.响应式单位rpx以及搭配使用UI产品1.px和rpx的区别2.rpx的作用及理解响应式布局:使用 rpx 可以让元素在不同屏幕尺寸的设备上自动调整大小,从而实现响应式布局。锁定屏幕方向:由于 rpx 是基于屏幕宽度计算的,如果希望在横屏和竖屏之间保持一致的显示效果,建议锁定屏幕方......
  • 关于Flink内存分配核心知识点
    这个问题同样也是之前辅导过的同学的面试问题,这个问题非常接地气且考察面试者的实践经验。事实上,这也是我们大数据提高班的Flink专项提高部分内容。下面我列举的这些就是核心,能答出这些重点即可。内存模型在Flink1.9和Flink1.11版本做了非常大的改动,主要原因是为了统一Batch和Strea......
  • Python知识点:如何使用Python实现图像分类
    使用Python实现图像分类通常涉及使用深度学习库,如TensorFlow或PyTorch。以下是使用TensorFlow和Keras来实现一个简单图像分类模型的步骤。1.安装所需的库首先,确保已安装必要的Python库。使用以下命令安装TensorFlow和其他必需的库:pipinstalltensorflown......
  • Shell编程:一篇讲透数组全知识点
    文章目录数组数组参数的使用$*$@$#数组展开示例数组定义方法数组包含的数据类型获取数组长度读取特定索引的值数组遍历数组切片数组替换删除数组追加数组元素插入数组元素向函数传递数组参数数组在Bash脚本中,数组是一种存储多个元素的变量结构,可以使用不同的......
  • 【链式队列的实现】
    1.链式队列与循环顺序队的比较1.1链式队列优点动态扩展:不需要预先分配固定的存储空间,内存使用灵活,不会因为队列满而导致溢出。插入和删除操作简单:在链式队列中,插入和删除操作只需调整指针,无需移动数据,时间复杂度为O(1)。无容量限制:只要系统有足够的内存,链式......