- 博客(17)
- 收藏
- 关注
原创 L2-004 这是二叉搜索树吗? (25 分)
优解:#include <iostream>#include <vector>using namespace std;struct BinTree{ int val; BinTree *left, *right;};BinTree* insert(BinTree *root, int v){ if(root == nullptr) { root = new BinTree; root->val
2021-11-15 15:37:20 4036
原创 内存分类简介
内存分为1.代码区(存放的二进制代码,还未运行exe之前 就有代码区 ) 2堆区 3 栈区 4全局区(全局变量 静态变量 以及常量) 不同区域存放的数据被赋予不同的生命周期,给我们更大的灵活编程代码区1:共享 //对于频繁被执行的程序,只需要有一份代码 2: 只读//防止指令被意外修改全局区:全局变量,静态变量,常量(字符串常量,其他常量即const修饰的变量——const修饰的全局变量\!const修饰的局部变量不在全局区!)。全局区的数据在程序结束后,由操作系统释放。...
2021-08-06 18:06:40 546
原创 Leetcode19.删除链表的倒数第N个节点(C语言)
暴力解法/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* removeNthFromEnd(struct ListNode* head, int n){ struct ListNode* p=head; int num=1; //统计链表总长度 .
2021-06-09 22:20:45 197
原创 LEETCODE之链表 两数相加
题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)链接:https:/
2021-06-09 01:11:34 238
转载 回调函数之什么是回调函数,为什么要回调?
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。A "callback" is any function that is called by another function which takes the first function as a parameter。 也就是说,函数 F1 调用函数 F2 的时候,函数 F1 通过参数给 函数 F2 传递了另外一个函数 F3 的指针,在函数 F2 执行
2021-06-05 19:50:55 615
原创 C语言之自定义的输入字符串函数
由于gets()函数的安全性不高,容易造成越界访问,以及fgets()函数会自动将\n加入字符串中,若想安全地输入一个不带有\n的zi'fu'chu'a'b
2021-06-02 21:16:05 804
原创 c语言 fgets() fputs()
在对于字符串的输入时 一般不采用gets()函数 因为有可能造成越界访问,故采用更加安全的fgets()函数.char arr[10];fgets(arr,10,stdin);//第二个参数代表了访问的限制 如果输入超过(10-1)个字符,则会截取掉后面的字 //符,并自动补\0...
2021-05-28 11:30:33 293
原创 C语言例题之 缀点成线
在一个XY坐标系中有一些点,横坐标为x、纵坐标为y。请你来判断,这些点是否在该坐标系中属于同一条直线上,是则输出true,否则请输出false。测试样例输入61 12 23 44 55 67 7输出false利用长度可变的动态二维数组//如 申请了m*n个int型的存储单元,并用int型指针变量p指向这段内存的首地址,尽管它相当于建立了一个m行n列的二维动态数组,但不能用p[][]来表示,只能使用*(p+i*n+j)或p[i*n+j]来表示数组值 i.
2021-05-25 20:11:58 239
原创 最长回文子串
char* longestPalindrome(char* s);int main(){ char s[10]; gets(s); printf("%s",longestPalindrome( s)); return 0;}char* longestPalindrome(char* s) { int len = strlen(s); if (len <= 1) { return s; } int start = 0; int maxlen = 0; for (.
2021-05-25 17:53:44 93
原创 字符串常量之谜
对于char*ptr="hello";”hello“便是字符串常量,字符串常量本身就代表了存放它的常量储存区的首地址,所以不能把上句代码理解为将字符串赋值给ptr。所以,可以修改ptr的值来改变其指向,但不能对ptr所指向的存储单元进行修改...
2021-05-24 21:13:59 241
原创 有关于野指针的部分注意事项
如果该函数返回值是一个在函数内部定义的指针变量,则当函数调用结束时,指针变量指向的空间中的内存被系统回收,但指针变量本身的值并未发生改变,所以这个时候再对该指针操作就会造成风险。为了避免野指针,我们可以利用动态内存分配的空间不会在函数调用结束后自动被释放,而需要手动free的特点。int main(){ char*ptr=NULL; ptr=Getschar(ptr); puts(ptr); free(ptr); return 0;}char* Get
2021-05-24 21:10:14 123
原创 利用动态内存分配实现可变数组
在c99的标准中,允许结构体的最后一项是大小不不确定的数组即arr[]或arr[0]typedef struct s { int n; int arr[];}S;int main(){ int i=0; S*ps=(S*)malloc(sizeof(S)+5*sizeof(int)); ps->n=100; for (i=0;i<5;i++) { ps->arr[i]=i; } for (i=0;i<5;i++) { printf("%d",
2021-05-24 20:54:40 624
原创 无重复的最长子串
#include<stdio.h>#include<string.h>int length(char*s);int main(){ char arr[30]; gets(arr); printf("length=%d",length(arr)); return 0; }/*int length(char *s){ int left=0,right=0; int sizemax=0,size=0; int map[129]={0}; fo.
2021-05-23 16:08:20 99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人