剑指offer--2

简介: 前言:继续笔记分享! 面试题6:暂无好的解决方法先搁浅一下 面试题7: #include #include typedef struct LIFO{ int *data; int maxlen; int top; }seqstack_t; ty...

前言:继续笔记分享!

面试题6:暂无好的解决方法先搁浅一下

面试题7:

#include<stdio.h>
#include<stdlib.h>

typedef struct LIFO{
    int *data;
    int maxlen;
    int top;
}seqstack_t;
typedef struct LIFO1{
    int *data;
    int maxlen;
    int top;
}seqstack_t1;

//创建一个空栈
seqstack_t *CreateStack(int max)
{
    seqstack_t *H;
    H = (seqstack_t *)malloc(sizeof(seqstack_t));
    H->data = (int *)malloc(sizeof(int)*max);
    H->maxlen = max;
    H->top = 0;
    return H;
}
//创建一个空栈
seqstack_t1 *CreateStack1(int max)
{
    seqstack_t1 *H;
    H = (seqstack_t1 *)malloc(sizeof(seqstack_t1));

    H->data = (int *)malloc(sizeof(int)*max);
    H->maxlen = max;
    H->top = 0;
    return H;
}

//获取栈顶数据的值
int GetTop(seqstack_t1 *H)
{
    if(H->top <= 0)
    {
            printf("栈空\n");
            return -1;
    }
    return H->data[H->top-1];
}

//栈清空
void Clear(seqstack_t *H)
{
    H->top=0;
}

//向栈中插入数据
void Push(seqstack_t *H,int m)
{
    H->data[H->top]=m;
    H->top++;
}
//向栈中插入数据
void Push1(seqstack_t1 *H,int m)
{
    H->data[H->top]=m;
    H->top++;
}

int Pop(seqstack_t *H)
{
    return H->data[H->top];
}

int main()
{
    seqstack_t *T=CreateStack(10);
    seqstack_t1 *T1=CreateStack1(10);
    Push(T,1);
    Push(T,2);
    Push(T,3);
    
    int i=0;
    --T->top;
    while(T->top >= 0)
    {                
        Push1(T1,Pop(T));       
        i++;
        --T->top;
      }        
    while(T1->top > 0)
    {
        printf("data:%-5d",GetTop(T1));        
        --T1->top;
      }    
    printf("\n");

    free(T->data);
    free(T);
    free(T1->data);
    free(T1);
    return 0;
}

注:主要要懂栈后进先出LIFO,队列先进先出FIFO,一个栈弹出,一个压入,就可以实现队列!!!

 

作者: 柳德维

-------------------------------------------

个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ⁾⁾!

目录
相关文章
|
6月前
|
数据采集 边缘计算 数据可视化
RFID智能生产环节实施全追溯管控
RFID技术为生产要素赋唯一电子身份,实现“人、机、料、法、环”全流程自动采集、实时追溯与闭环管控,打通ERP/MES/WMS系统,破除信息孤岛,提升追溯精度、生产效率与质量管控水平。(239字)
|
5月前
|
人工智能 Linux API
OpenClaw(龙虾AI)入门详解:阿里云轻量服务器部署流程、模型配置与常见问题排查
OpenClaw(俗称Clawdbot,龙虾)并非传统意义上的对话式AI,而是一款基于MIT开源协议开发的本地优先AI智能体执行网关,核心价值在于将自然语言指令转化为实际操作,实现从“指令下达”到“任务落地”的全流程闭环。与单纯输出文字的AI不同,OpenClaw可直接操控设备系统、调用各类工具,完成文件管理、浏览器自动化、终端命令执行等实操任务,同时支持本地与云端多平台部署,兼顾数据隐私与运行稳定性。
1425 5
|
存储 机器学习/深度学习 人工智能
基于Memory Bank的Cursor长会话记忆内存库理论研究与实践
本文探讨了Memory Bank在解决大模型长期记忆问题中的应用,特别是在Cursor编程助手中的实践。Memory Bank通过分层存储、动态更新和精准检索机制,有效克服了传统模型在多轮对话中记忆丢失的问题。文章详细介绍了三种工具:Codelf、cursor-memory-bank-rules.md和One-Shot Memory Bank for Cursor的原理、配置及效果评测。其中,cursor-memory-bank-rules.md表现较好,适合项目梳理,但实际开发中的效果仍有待验证。
3051 11
基于Memory Bank的Cursor长会话记忆内存库理论研究与实践
|
SQL 存储 NoSQL
论文解读|TuGraph Analytics 流式图计算论文入选国际顶会 SIGMOD
蚂蚁流式图计算团队本次的论文 《GeaFlow: A Graph Extended and Accelerated Dataflow System》 被 SIGMOD 2023 收录,代表蚂蚁流式图计算团队的成果不仅在工业界有界广泛的应用,同时也在学术界得到进一步认可。
论文解读|TuGraph Analytics 流式图计算论文入选国际顶会 SIGMOD
|
人工智能 编解码 数据中心
中国逐年干燥度指数数据集
中国逐年干燥度指数数据集
474 1
中国逐年干燥度指数数据集
|
前端开发 Java 数据库
手把手教你使用Spring Boot从零开始制作用户注册登录功能
手把手教你使用Spring Boot从零开始制作用户注册登录功能
8122 2
手把手教你使用Spring Boot从零开始制作用户注册登录功能
|
SQL Linux
当理念冲突时,这些大佬选择与Meta分道扬镳,投身更开放社区
当理念冲突时,这些大佬选择与Meta分道扬镳,投身更开放社区
364 0
|
C语言
MATLAB结构化程序设计(四)
MATLAB结构化程序设计(四)
359 0
|
计算机视觉 索引
AnswerOpenCV(0826-0901)一周佳作欣赏
1、OpenCV to detect how missing tooth in equipment Hello everyone. I am just starting with OpenCV and still a bit lost.
1999 0