数据结构
创不了浩
代码练习生
展开
-
求两个链表的交点,若无交点返回null, 两种方法,时间复杂度为O(n)和O(n logn)
目录方法1使用set必备知识set的使用利用set求两个链表的交点方法2 分别求出链表长度做差后同时移动核心思想:1.分别求出两个链表长度2.用长的减去短的得到差值delta3.让长链表的头指针向前移动delta位,让两个链表此时指针和交点距离一样远4.同时移动两个链表的指针,直到有第一个交点为止. 方法1使用set 必备知识set的使用 利用set求两个数组的相同元素 #include<set> #include<stdio.h> int main(){ std::set&l原创 2020-05-19 08:21:00 · 368 阅读 · 0 评论 -
头插法和尾插法创建链表 链表的11种常用操作(详解)
尾插法 #include<stdio.h> #include<malloc.h> //尾插法 struct list{ int data; struct list *next; }; typedef struct list node; typedef node *link; int main(){ link rail,head; int i,num; //输入链表中的元素 head = (link) malloc (sizeof(node)); rail = he原创 2020-05-11 11:46:09 · 302 阅读 · 0 评论 -
3种冒泡排序的比较
第一种为:for循环i=0,j=n-1为一头一尾从后往前,两两依次比较,即if代码为if(a[j-1]>a[j]) 第二种为:for循环i=0,j=n+1跟第一种有差别,if判断一样, 第三种为:for循环i=0,j=n+1,if(a[i]>a[j])为无法进行flag标识优化的屌丝冒泡排序 #include<stdio.h> void Bubble1(int a[],i...原创 2020-04-16 22:33:49 · 299 阅读 · 0 评论