- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 二叉树3种遍历算法递归与非递归实现详解
一, 二叉树先序遍历的实现 递归实现void PreOrderTraverse(BiTree T){ if( T ) { VisitF(T->data);//访问根节点 PreOrderTraverse(T->lchild);//递归左子树 PreOrderTraverse(T->r...
2018-08-20 23:53:53 12406 3
原创 线索二叉树代码详解(与严蔚敏配套的实现)
首先画个简图我们要实现的样子: #include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR -1typedef char TElemType;typedef int Status;//线索存储标志位//Link(0):表示指向左右孩子结点的指针//Thread(1...
2018-08-17 23:37:15 1906 4
原创 栈的顺序表示法(2种方法实现),链式实现,共享栈的操作
#include<stdio.h>#include<stdlib.h>#define STACK_INIT_SIZE 100#define STACKINCRMENT 10#define OK 1#define ERROR 0typedef int SElemType;typedef int Status;/*栈的顺序表示法1*/typedef st...
2018-08-07 23:22:53 359
原创 设C = {a1,b1,a2,b2......,an,bn},采用头结点的hc单链表来存放, 设计一个就地算法,将其拆成 A = {a1,a2....a2} B = {bn,bn-1,...b1}
/*设C = {a1,b1,a2,b2......,an,bn},采用头结点的hc单链表来存放,设计一个就地算法,将其拆成A = {a1,a2....a2} B = {bn,bn-1,...b1}很容易联想到头插法*/LinkList DisCreat_2(LinkList &A){ LinkList B = (LinkList)malloc(sizeof(...
2018-08-02 23:48:37 4859
原创 将带有头结点的链表分解为两个带有头结点的链表A,B,使其A含有原来链表的奇数位,B为偶数位,保持其相对顺序不变
//将奇数结点放到A,偶数结点放在BLinkList DisCreat_1(LinkList &A){ int i= 0; LinkList B = (LinkList)malloc(sizeof(NODE)); B->next = NULL; LinkList ra = A,rb = B,p; p = A->next; //p...
2018-08-02 23:47:59 1710
原创 链表中升序删除结点
//升序删除结点void Min_delete(LinkList &L){ LinkList pre,p; while(L->next) { pre = L;//存放最小结点的前驱 p = L->next;//工作指针 while(p->next) { ...
2018-08-02 23:45:32 198
原创 两个链表有公共结点
两个链表有公共结点的话,那么该公共节点之后的所有结点都应该重合,既他们的最后一个结点必然重合,在遍历链表时,遍历到第一个公共结点时,到最后的结点的距离是相同的,所以1:先遍历两个链表的长度,并求出链表长度差2:在长链表先遍历长度差个结点后再同时遍历2个链表,直到找到相同的结点,或者一直到遍历结束 //寻找L1和L2的公共结点/*两个链表有公共结点的话,那么该公共节点之后的所...
2018-08-02 23:44:59 516
原创 链表中删除在min和max之间的结点
//删除在min和max之间的结点void RangeDelete(LinkList &L,int mins,int maxs){ NODE *pre = L,*p = L->next; while(p!=NULL) { if(p->data>mins&&p->data<maxs)//找到被删除的结...
2018-08-02 23:44:09 1742
原创 将带有头结点的链表递增排列
//将单链表的结点重新排序,使其达到递增有序void Sort(LinkList &L){ NODE *p = L->next,*pre; NODE *r = p->next;//r保存*p的后继结点的信息 p->next = NULL;//构造一个只含一个数据结点的有序表 p =r; while(p!=NULL) ...
2018-08-01 23:52:57 1383
原创 将带有头结点的链表逆向输出,但是不改变其原来的结构
将带有头结点的链表逆向输出,但是不改变其原来的结构,则可以联想到递归调用输出//从尾部到头输入单链表的L中的每个结点用递归可以实现void R_Print(LinkList L){ //从尾部到头输入单链表的L中的每个结点用递归可以实现 if(L->next !=NULL) { R_Print(L->next); } ...
2018-08-01 23:32:59 354
原创 将带有头结点链表“就地”逆置,其中“就地”指的是辅助控件的复杂度为O(1)
//将链表就地逆序LinkList Reverse_1(LinkList L){ /*基本思想是采用头插法来实现链表的逆序,这样控件复杂度就降为O(1)了*/ NODE *p,*r; //p为工作指针,r为的后继(防止断链) p = L->next;//从第一个结点开始 p-> L->next = NULL; while(p...
2018-08-01 23:23:52 251
原创 在链表中删除所有x元素的结点的递归实现和非递归实现
//用递归删除值为x的节点void Del_X_3(LinkList &L,ElemType x){ NODE *p;//p指向待删除的节点 if(L==NULL) { return; } if(L->data == x) { p = L; L=L->next; ...
2018-08-01 23:10:36 1073 3
原创 关于SpringBoot配置了yml还是不能访问界面解决方案
yml很方便,看起来很舒服。但是yml对格式要求很严谨。所以会导致你以为配置了,就完事了?其实你是配置错了而已。 如下图: 配置的时候出现了橙色的颜色说明配置错误或者格式不对 只有没有颜色提醒的时候才是正确配置。...
2018-08-01 00:06:48 1390
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人