自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 合并为递增序列

直接上代码NODE combine(NODE L1,NODE L2) { NODE r; NODE p1 = L1->next; NODE p2 = L2->next; L1->next = NULL; while( p1!=NULL && p2!=NULL) { if(p1->data < p2->data) { r = p1; p1 = p1->next; } else if(p1->d

2020-10-30 14:46:07 195

原创 合并为递减序列

直接上代码NODE combine(NODE L1,NODE L2) { NODE r; NODE p1 = L1->next; NODE p2 = L2->next; NODE C = (NODE)malloc(sizeof(lnode)); //L1->next = NULL; NODE M = C; M->next = NULL; while( p1!=NULL && p2!=NULL){ if(p1->data <

2020-10-30 14:39:44 169 1

原创 链表(开辟和不开辟新空间)

开辟新空间1相当于创建了一个链表,因此需要创造一个内存空间2要定义一个移动指针3因为是新链表,所以如果将跳出的节点插入这个新链表中,可以用头插或者尾插创造一个新节点交换此节点的数据域,这样原节点和这个节点所在的链表不会发生改变。不开辟新空间1需要先...

2020-10-30 14:24:30 2780

原创 交集并集完整版(开辟和不开辟空间)

不开辟新空间的并集和交集并集如下void unionlink(NODE A,NODE B){ NODE q,d; int c = 0; NODE p1 = A->next; NODE p2 = B->next; A->next = NULL;//不开辟新链表 直接将A改成新链表 while(p2!=NULL)//先将p2 插入一个链表中; 然后将p2与p1不同的再插入 { d = p2; p2 = p2->next; d->ne

2020-10-30 13:52:52 371

原创 链表将x插入合适的位置

新建递减有序的单链表L,从头找起,找到第一个比x小(或相等)的结点数据,把x插入这个数所在的位置即可void insert(NODE L){ int x; printf("请输入要插入的数\n"); scanf("%d",&x); printf("\n"); NODE p = L; while(x < p->data) { p = p->next; } if(!p) { printf("失败\n"); } else { NODE new

2020-10-26 20:53:29 824

原创 链表中需要注意的问题

因为头指针不能动 所以要定义一个移动指针链表申请的本质就是地址 所以传参的时候就是传这个指针 你在任意函数改变了这个地址里面的数 所以这个链表就会发生改变

2020-10-10 23:08:08 510 1

原创 双链表插入(后插前插)删除完整

双链表插入(后插前插)删除完整值查跳出的位置是当前p的位置NODE zhifind(NODE headnode){ int x,i,e; NODE p = headnode->next; printf("请输入查询的数\n"); scanf("%d",&i); while(p && i!= p->data) { p = p->next; } if(!p) { printf("失败\n"); } else

2020-10-07 07:47:24 1050 1

原创 算法(顺序表逆置 单链表逆置)

顺序表逆置两两交换分别是首尾交换一次和中间两个数交换一次 所以这种逆置方法的交换次数是总长度的一半n/2;void nizhi(sqlist *L){ int i,t; for(i = 0;i <= L->length-3;i++) { t = L->data[i]; L->data[i] =L->data[L->length-1-i]; L->data[L->length-i-1] = t; } for(i = 0;i&l

2020-10-04 22:31:06 986 1

原创 算法(将x插入线性表合适的位置)

直接上代码void insert(sqlist *L,int x){ int i,j,t; i = L->length-1; //直接定义成数组表示的形式 while(i>=0 && x < L->data[i])//必须要大于等于0 因为最后一个数是a[0] { i--; } //在x等于这个数的那个节点 i 跳出 printf("%d\n",i); for(j = L->length-1;j &g

2020-10-04 21:57:01 744 2

原创 现认识数据结构中结构体的运用

结构体类型分为两种struct date {int month;int year };struct date day 类型是struct date 变量是day typedef struct{}luck,*NODE;luck *day; 类型是luck 变量是day 指针 NODE headnode 类型是NODE 变量是headnode 指针 **结构体初始化** 1.struct date day={1,2} 自动匹配给值 luck headnode={

2020-09-30 22:11:33 179 1

原创 链表增查完整 值查和位置节点查

链表增删改查完整查询值查跳出的地址是p的当前地址 NODE p; p = headnode->next; while(p && p->data != x) { p = p->next; } if(!p) { return NULL; } else { printf("%d\n",p->data); return p; } 节点位置查跳出的p是p的前一个地址 NODE q; q=headnode; int

2020-09-27 11:06:55 177 2

原创 开始数据结构的学习

目前学到了链表的操作 先说一点我自己明白过来的东西在链表操作中 遍历有两种形式 (带头结点的链表) 1. `p = headnode->next;` 2. `p = headnode;` 对应的两种while循环```cwhile( p -> data != x)p = p->nextwhile(p ->next ->data != x)p = p->next第一种是直接从第一个结点开始 所以判断条件第一个为 p->data;所以

2020-09-23 22:08:41 191 4

原创 反复惆怅

想法1还是觉得应该先学c版的数据结构 同时学习c++的算法基础2看看java能不能顺利变通数据结构 如果不行 还是用c++训练

2020-07-30 09:56:06 154 1

原创 维持一年的学习

体会1 其实也不用那么纠结 现阶段用c++只不过是c语言+stl 把stl库函数里面几类先给学完 然后去刷算法 再用c++和c去搞数据结构 一直学 为了考研上机编程2 大二下学期选择java c++是面向对象的语言 java是纯面向 所以c++学好 java也能有所体会了计划1 因为大二有项目所以先把python基础学好2 开始学习c++ 同时复习c 开展stl库的学习3 stl和算法基础学完 去leetcode刷题4 学习数据结构5 1 2标题会在8月份完成 3 4持续

2020-07-24 17:36:29 136 1

原创 反思2

1老师 学校教的数据结构是c 学数据结构c和c++都可以2而学算法的话要c++或者java c不太方便3但是我们下学期开课如果分班要学java4考研数据结构也是c或者c++ 伪代码 上机编程三种语言都适合所以要不要自学c++ 感觉c++可以把数据结构串起来 如果不学 感觉即使学了算法 用java转换过来也很麻烦...

2020-07-24 13:34:37 131

原创 反思1

晚上看了学长发的1 leetcode 用c++有专门的stl库 能够调用 对以后编程上机也有帮助2 数据结构很多是伪代码 所以c和c++是一样的3 现在不知道是否要自学c++ 和 stl 目前还在自学python

2020-07-24 02:54:35 85

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除