- 博客(28)
- 收藏
- 关注
原创 c语言中的函数定义
只有子函数被调用的时候,计算机才会为形参分配空间,形参才会接收实参的值。要求返回值,看参数什么类型,int型就用int,return a;如果题目不要求返回值,就用void,return可写可不写;4.当数组作为子函数参数的时候,在主函数中直接操作就行。值传递适合不改变主函数结构,只改变子函数大小。当原来的结构需要发生变化的时候用引用。
2023-10-20 16:03:35 16
原创 C语言中的数组
在64位操作系统中,指针要占到八字节,因为指针本质保存的是一个地址。&是取地址,指针=&变量,代表把变量地址值给指针。*是取值,*指针代表要取指针指向地址的值。
2023-10-20 14:44:26 19
原创 17.判断循环双链表是否对称
怎么结束这个遍历呢?对于节点数量不一样的循环链表有不同的方法,对于对称的,上面的方法是正确的,但是对于不对称的,上面这种方法就需要结束条件.顺着前驱指针的方向也行,顺着后继的方向也行,这里用后继q->next=p。判断对称,即定义两指针p和q,p顺着前驱指针的方向遍历,q顺着后继指针的方向遍历,每到一个节点,都判断一下,p和q所指向节点的数据域的值是否相同即p->data==q->data。
2023-10-15 16:23:23 238 1
原创 18.链接两个循环单链表
1.设置两个尾指针,p和q,p是h1尾指针,指向h2首元结点,q是h2尾指针,指向h1首元结点。关键在于怎么让p遍历成尾指针,用循环链表的特性while(p->next!
2023-10-15 14:55:41 47 1
原创 16.判断b链表是否为a链表的连续子序列
串的简单模式匹配算法,也叫暴力匹配算法,基本思路是从主串的第一个字符开始,逐个比较主串和模式串中对应的字符,如果相等,则继续比较下一个字符,如果不相等,则从主串的下一个字符开始重新匹配。定义a序列指针为p,b序列指针为q,两者可以比较,再定义一个指针pre记录着从哪个节点开始这一轮的比较。如果模式串中的所有字符都匹配成功,则返回匹配成功位置;如果当前字符不相等,则将主串的比较位置后移一位,重新开始匹配。从主串的第一个字符开始,逐个和模式串中对应的字符进行比较。如果当前字符相等,则继续比较下一个字符。
2023-10-14 15:48:15 65 1
原创 09递增输出链表中节点数据,并释放所有节点
可以一边找一边删除,先找到最小的,输出了再给它释放了,再找到第二小的,打印了再给它释放了。最后直到链表中只剩头结点就完事了。1.按次序输出并释放节点。
2023-10-14 15:00:57 55 1
原创 14.两表公共元素产生新表
因为a、b表都是递增有序序列,所以可以设置三种情况,如果a的数值小于b,让a遍历到下一个值,再跟b比较;如果b的数值小于a,让b遍历下一个再跟a比较。如果a的数值等于b,建立新节点s,使其尾插到表c中。找相同的元素,在while(pa!=NULL&&pb!=NULL)给a设置p,给b设置q,判断p是否等于q。若a和b一个表长一个表短?可以让未完结的那个再遍历对比一遍短的那个表while(pb!1.先找到两表相同的元素,再进行尾插法插入到链表c中。1.题目有要求,不能破坏ab节点,所以只能创建新表。
2023-10-14 13:25:49 22 1
原创 12删除单链表中数值重复的节点
易知删除需要前驱指针和指向节点的指针,可以将前驱指针和指针进行判断,如果有重复,就用前驱指针进行删除。1.先找到重复的节点,再去删除。
2023-10-14 11:50:43 304 1
原创 04删除最小值节点(最小值节点唯一)
设置minpre和minp这两个指针,minp是永远指向链表中的最小值,通过比较p和minp的值的大小,将最小值存放在minp中。minp和minpre负责存值。之所以这样设置,是因为如果只设置一对p和pre,就成了排序了,无法在不移动原来结构的情况下找到最小值。需要遍历整个链表,设置两个指针,一个pre指向L,另个p指向首元结点。两者永远差一个值,两者负责移动。1.找到节点,删除节点。
2023-10-14 11:13:22 42 1
原创 13.两递增链表合为一个递减链表
1.先插入,再排序.。插入方法用头插法,由两联表都是递增可知,能比出来相对小的值,再利用头插法,变成递减链表。
2023-10-14 10:33:34 129 1
原创 07删除介于给定的两个值之间的元素
设在一个带表头结点的单链表中所有元素节点的数据值无需,试编写一个函数,删除表中所有介于给定的两个值(作为函数参数给出)之间的元素的元素(若存在)1.删除两个值,需要先找到两个值。遍历找到这两个值代表的节点,返回节点值。2.找到之后进行删除。
2023-10-13 23:10:05 47
原创 1.递归删除值为x的节点
要删除的节点涉及到前面的那个节点,所以设置两指针,分别为pre和p,pre指向首节点。q:设计递归算法,删除不带头节点的单链表l中所有值为x的节点。学到了,释放空间后p还可以再参与程序。2. 实现题目要求,递归删除。p:1.创建链表 头插法或者尾插法。
2023-10-13 19:29:33 33
原创 C语言学习-分队列
题目内容:班级第一次列队,通常老师会让同学按身高排成一列,然后1、2报数,喊到1的同学向前一 步,就这样,队伍就变成两列了。假设现在一个班级有n个同学,并且他们已经按身高排成 了一列,同学按身高从1到n编号,你能告诉我最后哪些编号的同学站在了第一列么?输入格式:输入一个正整数n,表示班级的人数。输出格式:按顺序输出所有在第一列的同学对应的编号,每两个编号之间用一个空格隔开,最后一个编号后面没有空格。输入样例:11输出样例:1 3 5 7 9 11#.
2022-01-02 21:08:15 898
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人