首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言共享

的操作我相信大家都应该了解了弄懂了, 如果没弄懂希望可以去再去看看相关的资料,我博客中的C语言中缀表达式转后缀表达式中涉及到了一下的基本操作,有兴趣的朋友也可以看看。...所谓共享,就是两个共同使用一块内存空间,其中一个底作为另一个顶,反之亦然。...1#进行操作,入操作和顺序的入操作并无太大不同。...如若入成功则返回0;入失败则返回-1; 出时,先确定号是否合法,然后查看是对0#还是1#进行操作,出操作和顺序的出操作并无太大不同。 选定之后进行出操作。...MaxSize 100 typedef int ElemType; typedef struct { ElemType data[MaxSize]; int top[2]; }SqStack; 初始化共享

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

c语言实现(顺序,链)

个人主页: :✨✨✨初阶牛✨✨✨ 推荐专栏: C语言进阶 个人信条: 知行合一 本篇简介:>:讲解用c语言实现:“数据结构之"”,分别从"顺序"和"链"的接口讲解....1.1 初始化 top指针: 由于数组的下标是从0开始,所以我们初始化""时,可以将top指针(顶指针)初始化为-1,这样即可代表""中无数据. capacaity : 同顺序表一样...""不需要进行随机访问其中的元素,只能从顶访问,链表是可以完成的. 2.1 初始化"链" 对于链表实现的,如果不带头结点: 我们不需要特意去写一个初始化函数.只需要创建一个顶指针,将其初始化指向...(下面的代码是采用这种形式) //创建一个顶指针,并完成初始化 SLStackNode* SLStack = NULL; 如果是带头结点的单链表: 我们可以定义一个初始化函数,申请一个头结点(头结点的数据域不存数据...(ST* ps);//返回顶元素 void STDestory(ST* ps);//的销毁 接口实现区( stack.c) #include "stack.h" //初始化 void InitST

20520

洛谷 || C语言

题目背景 是计算机中经典的数据结构,简单的说,就是限制在一端进行插入删除操作的线性表。 有两种最重要的操作,即 pop(从顶弹出一个元素)和 push(将一个元素进)。...的重要性不言自明,任何一门数据结构的课程都会介绍。宁宁同学在复习的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。...题目描述 宁宁考虑的是这样一个问题:一个操作数序列1,2,…,n(图示为 1 到 3 的情况), A 的深度大于n。...现在可以进行两种操作, 将一个数,从操作数序列的头端移到的头端(对应数据结构的 push 操作) 将一个数,从的头端移到输出序列的尾端(对应数据结构的 pop 操作) 使用这两种操作,由一个操作数序列就可以得到一系列的输出序列

1.2K30

C语言的实现

因为方便:试想一下我们要判断是否空就只需要判断top是否等于buttom,如果buttom指向底显然就会麻烦许多 下面我们先用C语言来实现一下: 首先我们需要对这个装东西的“盒子”定义,而这个盒子就是...,然后节点可以放在里面(不过实际上的代码是一个概念,只是形象的用了两个结构体表示) 回到上面的话题,定义完了,接下来就是的操作,操作主要有入(push)和出(pop),还有遍历输出,其次就是一些诸如清...出一般有两种:1.让指定数据出2.让top指向的数据出,注意,如果要让指定的数据出,而且如果那个数据在中间,那你就不得不把从top到那个数据的全部节点出,因为是后进先出,而且只允许一段入/出...*n=sk->top; sk->top=n->next; delete n; } 就像上面,另还要注意出需要考虑是否为空,我没有写 至此,一个C语言版本的及其主要操作就完成了,这也是我第一次写结构...,因为我用C++ stack sk; sk.push(5); //..

3.8K40

必备 :C语言基础

在《全的技术设想》中埋下了4种编程语言的伏笔,已经兑现了Javacript,Python和Java, 本想将C/C++一并整理,但涉及面向对象等设计技术,最终还是C 梳理一下,从0到1吧。 ?...一个变量在内存中的地址就称为该变量的指针,这是C语言中的精华,下面单独描述。 C语言还提供了十分丰富的运算符,主要有如下34种: 算术:+、-、*、/、++等 关系:>、<、==、!...由于的先进先出特点,所以特别方便用来保存/恢复调用现场。 程序在进入main函数之前,已经完成数据在内存中的分配、初始化,包括数据区,堆栈区等。...关于这部分代码对于开发者不可见,属于C标准运行时的一部分。 函数在调用和被调用过程中,都伴随着入和出,因此发挥着重要作用。函数的局部变量、参数、返回值都存在区中。...C语言被一些人誉为“上帝语言”,它几乎奠定了软件产业的基础,还创造了很多其它语言。但是,鉴于水平有限,难以举重若轻,本文中的基础描述只是老码农的碎碎念罢了。

1.1K30

c语言结构体数组怎么初始化,c语言结构体数组初始化「建议收藏」

大家好,又见面了,我是你们的朋友全君。 最近看一段代码有所迷惑,先简单总结一下。...看下面例子 typedef struct _TEST_T { int i; char c[10]; }TEST_T; TEST_T gst = {1, “12345”};//可以初始化,设置i为1,...TEST_T gst = {1};//初始化个数少于实际个数时,只初始化前面的成员。 TEST_Tgst = {.c=“12345”};//有选择的初始化成员。 复合字面量。...当然也可以使用复合字面量来初始化: gst = (TEST_T){.i=122, .c=”123″}; 3、结构体数组 可以用多个大括号括起来: TEST_T gst[10] = { {},{},{}...} 发布者:全程序员长,转载请注明出处:https://javaforall.cn/161080.html原文链接:https://javaforall.cn

1.3K20

C语言笔记】指定初始化

C99增加了一个新特性:指定初始化器(designated initializer)。...利用该特性可以初始化指定的数组元素,也可以初始化指定的结构体变量(往期笔记【C语言笔记】结构体有用到这个特性对结构体变量进行初始化)。 本笔记主要分享:使用指定初始化初始化数组。...对于传统的C初始化语法,必须初始化最后一个元素所有元素,才能初始化它: int arr[6] = {0,0,0,0,0,212); //传统的语法 而C99规定,可以在初始化列表中使用带方括号的下标指明待初始化的元素...下面看一段程序: /* designate.c--使用指定初始化器 */ #include #define MONTHS 12 int main (void) { int days...参考摘抄:《C Primer Plus第六版》

1K10

C语言基础】内存的初始化

我们编写C语言的时候需要给变量申请一块内存区域,当我们创建一个内存区域的时候,内存中的数据十有八九是乱七八糟的(因为其他代码用过后遗留的数据并没有及时清掉) int main() { char...这里有两种解决问题的方法: 第一种: 使用menset函数为新申请的内存做初始化工作 menset(void*,要填充的数据,要填充的字节个数) int main() { char str[10...memset是计算机中C/C++语言函数。...将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。

1.8K60

【线性表】之(C语言)

---- 也是线性表,在逻辑上还是挨着放的。 的概念以及结构 :一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。**进行数据插入和删除操作的一端称为顶,另一端称为底。...**中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压:的插入操作叫做进/压/入, 入数据在顶。 出:的删除操作叫做出。 出数据也在顶。...总结: ​ 如果用尾插做顶,用双向链表更好。 ​ 如果用单链表实现,就用头去做顶,这样入和出效率都是O(1)。 ​ 整体来说数组的效率更优一些。...capacity;//的容量——能放几个数据 }Stack; 初始化 如果初识的top给0,意味着top指向顶的元素的下一个,top给-1,top指向顶元素。...void StackPop(Stack* ps) { assert(ps); //如果空了调用top,直接终止程序报错 assert(ps->top > 0); ps->top--; } 返回顶元素

63710

C语言-用实现表达式求值(顺序)

函数目录: 的基本操作: 创建初始化(create) 入(push_in) 出(pop_out) 取顶元素(GetTop) 优先级函数(Precede) 求值函数(Operate) 判断操作符函数...但是建立两个不同类型的,需要在代码中将的基本操作函数(建立,初始化,入,出,取顶元素)写两遍,然后在存取操作数和运算符的时候分别调用对应的操作,过程过于麻烦,代码也过于繁琐,不如数字来的简洁明了...\n"); exit(0); } } } int In(char c) //判断是否为运算符,是运算符返回1,若不是返回0 { switch(c)...int i=0; //指向存放表达式数组的下标指针(其实不是真正的指针,而是数组下标) create(&OPND); //建立并初始化运算数OPND create(&OPTR); //建立并初始化运算符...evaluateExpression(exp); printf("\n"); printf("%s%d\n",exp,result); return 0; } 执行结果: ---- 参考: 数据结构(C语言第二版

1.4K10

C语言指针的初始化和赋值

大家好,又见面了,我是你们的朋友全君。...因为,在C语言里面,没有整体处理一个字符串的机制 赋值: cp = “abcdefg”; *cp=”abcdefg” ;//错误!...在大多数计算机中,内存地址确实是以无符号整型数来表示的,而且多以16进制表示,但我们在C语言中不能用整型数去表示地址,只能用指针常量来表示,因为它是被用来赋给一个指针的。...对于这个赋值问题还可以换一个角度去理解,在C语言中,使用赋值操作符时,赋值操作符左边和右边的表达式类型应该是相同的,如果不是,赋值操作符将试图把右边表达式的值转换为左边的类型。...ANSI C还定义了一个宏NULL,用来表示空指针常量。大多数C语言的实现中NULL是采用后面这种方式定义的:#define NULL ((void *)0)。

2.2K10
领券