c语言
文章平均质量分 59
可爱的乐乐哥哥
这个作者很懒,什么都没留下…
展开
-
栈的基本操作
栈的基本定义:栈是“先进后出”的性质,这是一种特殊的线性表,其实只允许在固定的一端进行插入或删除操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。但函数只能在栈顶操作。一.定义结构体typedef int STDataType;typedef struct Stack{ STDataType* a; int capacity; int top;}ST;如果想改变数据类型,就可以直接将int改为需要的数据类型。二.初始化栈void StackInit(S...原创 2021-11-08 23:30:33 · 432 阅读 · 0 评论 -
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
题目要求:为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。示例:一.判断是否有环 判断是否有环的方法就是定义两个指针,一个快指针,一个慢指针,快指针一次走两步,慢指针一次走一步,如果走到某一位置时,快指针和满指针相同,那么就可以证明有环。具体如下:代码如下:bool hasCycle(st...原创 2021-11-04 11:54:51 · 433 阅读 · 0 评论 -
c语言之要求写一个函数,将字符串中的空格替换为%20
题目:要求写一个函数,将字符串中的空格替换为%20。样例: “abc defgx yz” 转换成 “abc%20defgx%20yz”一.创建新的字符串根据题目要求,我们可以创建两个字符串,一个字符串用来放原字符串,另一个可以遍历后成新的字符串。新的字符串就是将旧的字符串里面的空格改成%20。这种算法也比较简单就是单纯的从前面往后面遍历,遇见空格就改成%20。具体代码如下:void repace(char arr[], char arr1[]){ int i = 0; i原创 2021-08-31 22:28:56 · 884 阅读 · 17 评论 -
C语言之qsort函数
一.qsort函数原型qsort 功 能: 使用快速排序例程进行排序,这个函数是根据二分法写的,其时间复杂度为n*log(n)#include<stdlib.h>void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *))各参数:1. 待排序数组首地址(可直接输入待排序数组名,或是指向数组的指针)2. 数组中待排序元素数量(可以用sizeof()来求)3. 各元素原创 2021-08-23 19:48:23 · 564 阅读 · 14 评论 -
C语言之函数调用及栈帧分析
一.前言每一次函数调用都是一个过程。这个过程我们通常称之为:函数的调用过程。这个过程要为函数开辟栈空间,用于本次函数的调用中临时变量的保存,现场保护。这块栈空间就是函数栈帧。实验代码:#include<stdio.h>int add(int a, int b){ return a + b;}int main(){ int a = 10; int b = 20; int c = 0; c = add(a, b); printf("%d", c); ret.原创 2021-08-20 16:15:08 · 808 阅读 · 21 评论 -
深度剖析数据在内存中的存储
一.数据类型的介绍 我们所学的数据大致可以分成以下几类一类是整形数据(char,short,int,long)一类是浮点型数据(float,double)一类是构造类型数据(数组类型,结构体类型(struct),枚举类型(enum),联合类型(union))还有一类是指针类型(int *,char *,float *,double *)最后一个就是空类型void二.整形在内存中的存储计算机中数据的存储有三种形式:原码(将数据按照正负号的形式直接写成二进制)反码(正数.原创 2021-08-16 20:32:07 · 314 阅读 · 42 评论