- 博客(14)
- 收藏
- 关注
原创 栈应用(有效的括号)
/证明没有可以入栈的,栈中为空,也就是说全部为右括号。如果遇到右括号就拿栈顶元素和所遇到的右括号进行配对,如果配对成功进行弹栈,如果最后栈结构为空,则说明括号全部匹配完成,则括号是合法的。基本思想:如果在字符串中遇到了'(','[','{‘(也就是左括号),进行入栈,改写栈顶指针。由于本人博主懒得写c语言的底层栈,所以我直接使用c++中的已经实现了底层栈结构的stack。bool函数那个传引用的作用是防止发生浅拷贝,导致数据芜杂和内存的占用。
2024-01-23 18:08:54 377 1
原创 链表冒泡排序
/链表排序int value;}Node;return p;while(p){p=p->next;count++;//链表冒泡排序do {= last) {// 交换节点的值return;p=p->next;return;p;p=q){q=p->next;free(p);return;int n;i<n;i++){return 0;
2024-01-21 18:45:27 341 1
原创 通过链表合并字符串(非0)
/链表合并字符串int value;}Node;return p;while(p){=0){p=p->next;}else{p=p->next;return;p;p=q){q=p->next;free(p);return;return;p=p->next;return;int n;int a[101];i < n;i++){
2024-01-21 18:35:36 372 1
原创 算法和数据结构-链表
/构造虚拟头节点,*p地址初始化为虚拟头节点的地址,virtualhead是一个真实的节点,不是指针。//找到目标节点后,需要修改前一个节点的指针,将其指向目标节点的下一个节点,跳过目标节点,现在的ptr就是当前指针的前一个节点指针。Node *YESheadinsert(Node *head,int val,int pos)//有头链表的插入。Node *NOheadinsert(Node *head,int val,int pos)//无头链表的插入。// 处理头节点是目标节点的情况。
2024-01-17 09:05:41 377
原创 算法和数据结构——顺序表
int removedata(table *T,int val)//给出指定的值进行删除。int removepos(table *T,int pos)//通过位置删除指定元素。int search(table *T,int val)//顺序表中搜索指定元素。//顺序表中的元素数据加1。
2024-01-15 12:01:33 329 1
原创 c语言的噩梦----->指针(指针基础)
一个数组包含若干元素,每个数组对应的元素在内存中占用存储元素单元,即每个元素对应的也总有一个对应的地址,指针变量既然可以指向变量,当然也可以指向数组元素,所谓。一个变量的指针的含义大概包括的是两个方面,第一个是以存储单位单元编号对应的春地址,一是指向的存储单元的数据类型(int,float,char)因为原来的指针数组,它的每一个元素是指针类型的变量,所以要访问对应指针所指向的元素要进行指向指针数据的指针变量,就是我们一般说的二级指针。
2024-01-14 18:36:15 837 1
原创 局域网之交换技术
再写的大白话一点就是,你现在和班里同学处于一个教室,但是有一批人和另外一批人闹了小矛盾谁也不想和谁玩,所以你们在教室中间划分了一条所谓的三八线(楚河汉界),这条线以左(vlan10)的人一起玩,线右面的人(vlan20)一起玩,虽然是同一个教室,但是却互不影响,如果还有其他人和这边的人还有矛盾那就再划一条线这片区域内的人一起玩可以叫做(vlan30)(白话文举个列子,仅仅是为了通俗易懂而已没有分裂班级矛盾的意思,感觉这样讲会很通俗易通了吧)=tag,如果后面有存在的标签则通过,如果没有则就进行丢弃。
2024-01-03 20:46:11 889 3
原创 网络基础结构整理和分析
这是ip地址拆分为二进制的结果(当然这里我为了书写方便将它全部拆解为0),当然也可以全部拆分为1,根据二进制的计算原理可以得出最大的数为255,即全部为1的时候,当全部为0的时候就是1,所以ip地址的范围为1-255。对于长时间记忆准确的百度的ip地址是较难的,所以我们就有了dns,我们不用记忆百度的准确的ip而只需要记住它的域名,dns就可以将域名自动转换为ip地址。要让报文能够正确的转发,需要准确的知道目的ip/网关/mac地址,这时候的arp就可以将对应的ip地址协议解析到对应的mac地址。
2023-12-30 22:29:47 872
原创 查找算法之哈希算法
的查找算法,哈希表的底层原理为数组下标以及对应值的映射,而数组通过下标index直接访问数组中所对应的值花费的时间复杂度是相对较少的,但是数组暴露的问题是不能动态分配所要的存储空间,导致有极大一部分资源会被浪费掉,哈希表同样也是通过下标来反映值,从高维到低微的映射,但是哈希表在查找元素时时间复杂度为o1,极大的减少时间复杂度的问题。比如我在xxxxxx这个位置有1-9的数值的冲突,那么我就在这块地址构造一个链表用来存放相同的地址不同的冲突值,查找时候只需要锁定原哈希表地址下对应的链表结构来查找数值即可。
2023-12-25 17:35:55 330
原创 查找算法
2:二分查找的重要特点为:左右边界需要特别明确,并且二分查找的算法规则基于的是数组在有序的情况下进行查找,如果查找同一个数字并且需要确定数量将进行二次二分查找,总之明确二分查找的原理为:1:数组大致有序 2:时间要求的复杂度较小的情况下可以考虑二分查找算法。二分查找算法是一种时间复杂度为log(n)的查找算法,相比较于普通的遍历查找时间复杂度会大大降低(所以二分查找又通常被叫做折半查找),每次将查找完的数组将size会减半。//因为元素中的元素是不重复且为升序排序符合二分查找的特点所以可以使用二分查找。
2023-12-24 22:26:47 853 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人