自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git使用

git reset --hard 版本号从git库克隆文件git clone -b 分支名 git@10.1xx.xx.1xx:/home/git/filenam.git提交文件到git库①首先从git库中克隆一份最新的代码②对代码进行修改③git status查看自己修改的文件④git add添加修改的文件⑤git commit –m " "输入修改的信息⑥git log查看自己提交的信息⑦git push放入服务器git回退代码版本git reset --hard 版本号.

2021-10-18 09:42:58 130

原创 sftp,scp传输

sftp:1.连接远程服务器(默认端口号:22)sftp -P 22 username@ip address(远程服务器ip)2.切换至需要下载文件的目录下cd /path/to/dir3.下载文件(从远程服务器下载到本地)切换至你要存放的文件目录下lcd E:/get file_name4.上传文件(从本地上传到远程服务器)put file_name5.命令说明:lls:查看本地目录文件lcd :切换本地目录ls:查看服务器端目录文件cd:切换服

2021-10-18 09:36:35 979

原创 Linux下c语言简易贪吃蛇的实现

/* * snake.h * * Created on: 2021/04/13 * Author: wangyuwei */#ifndef SNAKE_H_#define SNAKE_H_#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <pthread.h>#define WIDE 8.

2021-04-23 15:01:15 324

原创 eclipse ctrl+左键失效

windows->Preferences->c/c++->Editor->Scalability取消勾选以下内容

2021-04-15 11:02:36 1138 1

原创 王道ch4-BiTree-20.将给定表达式二叉树转换为等价中缀表达式输出

//任务:将给定表达式二叉树转换为等价中缀表达式输出//算法思想:在遍历左子树之前加左括号,遍历完左子树后输出中间结点,在遍历右子树之后加右括号void InOrder(BiTree2& T,int deep){ if (T == NULL) return; else if (T->lchild == NULL && T->rchild == N...

2019-10-25 16:02:57 1601 3

原创 王道ch4-BiTree-19.求二叉树所有叶结点的带权路径长度之和WPL

//任务:求二叉树所有叶结点的带权路径长度之和WPL(一个叶结点的带权路径长度=叶结点的权值*叶结点到根节点的路径长度(线的个数))//算法思想:利用层次遍历记录层数,如遇到叶子结点则用叶子结点×(层数-1)int WPL(BiTree& T){ SqQueue Q; InitQueue(Q); BiTree p = T;int last, level = 0,wpl=0; ...

2019-10-25 16:00:29 1130

原创 王道ch4-BiTree-17.判断两棵二叉树是否相似,两棵都是空树,或只有一个结点为相似的,或者两棵树的左子树左子树是相似的,右子树右子树相似

//任务:判断两棵二叉树是否相似,两棵都是空树,或只有一个结点为相似的,或者两棵树的左子树左子树是相似的,右子树右子树相似bool similar(BiTree& T1, BiTree& T2){ bool l, r; if (T1 == NULL && T2 == NULL) return true; else if (T1 == NULL || ...

2019-10-25 14:00:46 230

原创 王道ch4-BiTree-16.将二叉树的叶结点按照从左到右的顺序连成一个单链表

//任务:将二叉树的叶结点按照从左到右的顺序连成一个单链表BiTree pre = NULL, head;BiTree leaf(BiTree& p){ if (p) { if (p->lchild == NULL && p->rchild == NULL) if (pre == NULL) { pre = p; head ...

2019-10-25 13:58:07 1385 2

原创 王道ch4-BiTree-14.计算二叉树的宽度,即二叉树中结点最多的一层的结点个数

int BtWidth(BiTree& T){ int last, max =1; SqQueue Q; InitQueue(Q); BiTree p = T; EnQueue(Q, T); last = Q.rear; while (!IsEmpty(Q)) { DeQueue(Q, p); if (p->lchild) EnQueue(Q,...

2019-10-25 13:57:21 516

原创 王道ch4-BiTree-12.找到值为x的所有祖先

//任务:找到值为x的所有祖先//利用后序遍历,可以找到一个结点到任意祖先的路径。//具体来说,后序遍历的非递归算法思想是,先遍历左子树右子树然后是根。//先将根结点入栈,然后指针一直向左移动直到某结点没有左孩子时,指针为空,这时取栈顶元素(注意不是出栈)//来检查这个栈顶结点是否有右孩子,如果有,判断这个右孩子开始是否被访问过,如果没访问过,则将指针指向右孩子并将它入栈//,然后开始...

2019-10-25 13:56:13 428

原创 王道ch4-BiTree-11.删除二叉树中,所有结点值为x的结点,删去以他为根的子树

//任务:删除二叉树中,所有结点值为x的结点,删去以他为根的子树。//算法思想:要删除次结点,必须先删除他的左右子树,故应该使用后序遍历,//根据层次遍历,找到本结点的左孩子和右孩子判断左孩子右孩子的值,若相等则删除左子树,右子树和它自己。void del_x(BiTree& T){ if (T != NULL) { del_x(T->lchild); del_...

2019-10-25 11:41:41 907

原创 王道ch4-BiTree-10.找到二叉树先序遍历的第k个结点并输出它的值

//任务:找到二叉树先序遍历的第k个结点并输出它的值int c=1;int ProNode_k(BiTree& T, int k){ int ch; if (T == NULL) return 999; if (c == k) { return T->data; } c++; ch=ProNode_k(T->lchild, k);...

2019-10-25 11:40:43 460

原创 王道ch4-BiTree-9.将树中每个结点的左右子树交换

//任务:将树中每个结点的左右子树交换//算法思想:利用层次遍历void swap(BiTree& T){ SqQueue Q; InitQueue(Q); BiTree p = T, temp; EnQueue(Q, T); while (!IsEmpty(Q)) { DeQueue(Q, p); if (p) { if (p->lchild)...

2019-10-25 11:39:06 224

原创 王道ch4-BiTree-中序遍历线索化二叉树,线索二叉树的中序遍历

//任务:已知先序遍历中序遍历构造二叉树ThreadTree preInCreate(int A[], int startA, int endA, int B[], int startB, int endB){ int i, llen, rlen; ThreadTree root = (ThreadTNode*)malloc(sizeof(ThreadTNode)); root-&gt...

2019-10-22 20:41:17 393

原创 王道ch4-BiTree-8找出二叉树的双分支结点

//任务:找出二叉树的双分支结点int dsonNode(BiTree& T){ SqQueue Q; InitQueue(Q); BiTree p = T; EnQueue(Q, p); int i = 0; while (!IsEmpty(Q)) { DeQueue(Q, p); if (p) { if (p->lchild &&amp...

2019-10-22 20:39:19 251

原创 王道ch4-BiTree-7判断是否是完全二叉树

//任务:判断是否是完全二叉树//算法思想:将二叉树所有结点按照层次遍历依次入队,包括空结点//如果出队的结点不为空,则将左右子树入队,如果出队的结点为空,则不将其左右子树入队//将剩余结点全部出队查看是否有非空节点,如果有非空节点,则不是完全二叉树bool Iscomplete(BiTree& T){ BiTree p = T; SqQueue Q; InitQueue(...

2019-10-22 20:38:23 230

原创 王道ch4-BiTree-5用非递归算法计算二叉树的高度

//任务:用非递归算法计算二叉树的高度//算法思想:使用层次遍历,利用队列指针,设置一个专门的指针last专门指向一层元素的最后一个元素//将一层中最后一个元素之前的元素依次出队,并将每个元素的孩子结点入队,那么当一层之中最后一个结点//出队之时,这一层所有的孩子结点已经全部入队,即此时的尾指针只想了下一层最后一个结点之后,//我们将last指向尾指针,以代表本层遍历结束int Btd...

2019-10-22 20:37:36 315

原创 王道ch4-BiTree-4按照从下往上,从右往左的顺序层次遍历二叉树

void InvertLevel(BiTree& T){ SqStack S; SqQueue Q; Init(S); InitQueue(Q); BiTree p = T; EnQueue(Q,T); while (!IsEmpty(Q)) { DeQueue(Q, p); Push(S, p); if (p->lchild) EnQueue(Q,...

2019-10-22 20:36:22 227

原创 王道ch4-BiTree-先序中序,后序中序构造二叉树,递归的先序后序中序层次遍历,非递归的先序中序后序层次遍历

#include "BiTNode.h"#include "SqStack.h"#include "SqQueue.h"#include <iostream>using namespace std;//任务:已知先序遍历中序遍历构造二叉树BiTree preInCreate(int A[], int startA, int endA, int B[], int start...

2019-10-22 20:35:16 286

原创 王道ch4-BiTree-二叉树链式存储和二叉树线索化结点的定义

//二叉树链式存储typedef struct BiTNode { int data; struct BiTNode* lchild, * rchild;}BiTNode, * BiTree; //线索化二叉树typedef struct ThreadTNode { int data; struct ThreadTNode* lchild, * rchild; int ltag...

2019-10-22 20:30:21 267

原创 王道ch3-Stackp90_2.有一个列车,HS分别表示硬座软座,利用一个栈将序列调整为S在H之前

//任务:有一个列车,HS分别表示硬座软座,利用一个栈将序列调整为S在H之前//算法思想,H入栈,S入栈后马上出栈void H_S(char* str){ SqStack S; Init(S); int i = 0,j=0,k=0; char* p = str; char x; while (str[i]!='\0') { if (str[i] == 'H') Push...

2019-10-15 21:30:09 219

原创 王道ch3-Stackp90_1.用栈判断括号序列是否匹配

//任务,用栈判断括号序列是否匹配bool BracketsCheck(char* str){ SqStack S; Init(S); int i = 0; char x; while (str[i]!='\0') { switch (str[i]) { case '(':Push(S, '('); break; case '[':Push(S, '['); br...

2019-10-15 21:29:12 184

原创 王道ch3-Stack3.判断进栈出栈序列是否合法

//任务:判断进栈出栈序列是否合法bool Legical(char* str){ int j=0,i=0; while (str[i]!='\0') { if (str[i] == 'I') j++; else j--; i++; if (j < 0) { //cout << j; return false; } }...

2019-10-15 21:28:06 134

原创 王道ch3-Stack栈的定义,初始化,判栈空,进栈,出栈,读栈顶元素

//栈的定义,初始化,判栈空,进栈,出栈,读栈顶元素#define Maxsize 50typedef struct SqStack { char data[Maxsize]; int top;}SqStack;typedef struct LinNode { int data; struct LinNode* next;}*LinStack;//初始化void Init...

2019-10-15 21:27:00 255 1

原创 王道ch1-LinkList23.删除单链表绝对值相同的数(时间尽可能高效)

//任务:删除单链表绝对值相同的数//算法思想:设置一个数组,用于判断是否出现过绝对值相同的元素,//将出现过的元素在数组对应位置中标记为1//如果之后的元素在数组中等于1,说明之前出现过相等的绝对值,将他删除void del_same(LinkList& L, int n){ int m; int* q = new int[n + 1]; LNode* p = L,*r...

2019-10-13 22:46:22 323

原创 王道ch1-LinkList21.用高效算法输出单链表中倒数第k个值

//任务:用高效算法输出单链表中倒数第k个值//算法思想:设置两个指针pq,均指向第一个节点,p向后移动到第k个结点,两个指针同时后移//q就指向倒数第k个结点,只需要一次遍历int Search_k(LinkList& L,int k){ LNode* p = L->next,* q = L->next; int i = 1; while (i < k)...

2019-10-13 22:41:30 151

原创 王道ch1-LinkList16.判断B是否为A的子序列

//任务:判断B是否为A的子序列//算法思想:比较A与B,若相等则用pre记录此时的A,同时后移,不相等则将B放到开头,A放到pre之后比较int Pattern(LinkList& A, LinkList& B){ LNode* ra = A->next, * rb = B->next,*pre=ra; while(ra&&rb) if...

2019-10-13 22:40:54 486

原创 王道ch1-LinkList15.AB中元素递增排列,找到交集并存放在A中

//任务:AB中元素递增排列,找到交集并存放在A中//算法思想:采用归并思想,一次比较,如果相等,将B中释放,B<A,删除B所在结点,指针后移//如果A没遍历完删除A,B没遍历完删除Bvoid Merge_same(LinkList& A, LinkList& B){ LNode* ra = A->next, * rb = B->next,*preA=...

2019-10-13 22:40:07 203

原创 王道ch1-LinkList14.A,B递增有序,用A,B中值相同的元素组成C,不破坏A,B

//任务:A,B递增有序,用A,B中值相同的元素组成C,不破坏A,B//算法思想:依次比较每个结点,如果AB相等,则建立新结点尾插法放入C,A>B,B指针移动void Create_same(LinkList& A, LinkList& B, LinkList& C){ LNode* ra=A->next, * rb=B->next,*s,*r=...

2019-10-13 22:37:44 137

原创 王道ch1-LinkList13.A,B递增排列,将两个单链表归并为递减序列,用原来的结点存放

//任务:A,B递增排列,将两个单链表归并为递减序列,用原来的结点存放//算法思想:摘下A的头结点,两个链表依次比较,较小的头插法放入A中。void Merge(LinkList& A, LinkList& B){ LNode* pa=A->next, * pb=B->next, * ra, * rb; A->next = NULL; while (...

2019-10-13 22:37:02 171

原创 王道ch1-LinkList12.删除单链表(递增有序)中重复的值

void del_same(LinkList& L){ LNode * p = L->next,*q; if (p->next == NULL) return; while (p->next) { q = p->next; if (p->data == q->data) { p->next = q->next...

2019-10-13 22:36:10 306 1

原创 王道ch1-LinkList11.A中a1,b1,a2,b2..an,bn,拆成A为a1a2a3,B为b3b2b1

//任务:A中a1,b1,a2,b2..an,bn,拆成A为a1a2a3,B为b3b2b1//算法思想,将b用头插法插入B中void Dis_Create2(LinkList& A, LinkList& B){ LNode* ra=A, * p=A->next, * q; while (p) { ra->next = p; ra = p; p ...

2019-10-12 20:55:37 311

原创 王道ch1-LinkList10.将带头结点的链表A分解为两个带头结点的A和B,A中含有序号为奇数的元素,B序号为偶数

//任务:将带头结点的链表A分解为两个带头结点的A和B,A中含有序号为奇数的元素,B序号为偶数//算法思想,将A中偶数的摘下来放到B中,奇数的留下void Dis_create(LinkList& A, LinkList &B){ int i = 1; LNode* pre=A, * p = A->next; LNode* r = B; while (p) ...

2019-10-12 20:54:52 341

原创 王道ch1-LinkList9.按递增序列输出单链表中各节点数据元素,并删除此元素

//任务:按递增序列输出单链表中各节点数据元素,并删除此元素//思想,遍历一次找到一个最小结点,输出并删除,以此类推遍历n次,每次都找到最小结点输出并删除,//时间复杂度n²void del_min(LinkList& L){//minpre用于记录最小结点的前驱结点 LNode * minpre = L, * p = L->next,*q; while (L->...

2019-10-12 20:53:59 462

原创 王道ch1-LinkList7.删除单链表中介于st之间的值

bool del_s_t(LinkList& L, int s,int t){ LNode* pre=L, * p=L->next; if (s > t) return false; while (p) { if (p->data>s && p->data<t) { pre->next = p->...

2019-10-12 20:53:12 162

原创 王道ch1-LinkList6.使单链表递增有序(带头结点)

//采用直接插入的算法思想,先摘下头结点和第一个节点,作为有序表,//遍历剩下的链表,与有序表比较,插入。void Sort(LinkList& L){ LNode* p=L->next, * r=p->next, * pre=L; p->next = NULL; while (r) { p = r; r = p->next; while (...

2019-10-12 20:52:17 407

原创 王道ch1-LinkList5.将单链表就地逆置

//任务:将单链表就地逆置//思想,将头结点摘下,利用头插法插入void Reverse(LinkList& L){ LNode* p, * r; p = L->next; L->next = NULL; while (p) { r = p->next; p->next = L->next; L->next = p; p...

2019-10-12 20:50:40 349

原创 王道ch1-LinkList4.删除单链表(带头节点)中最小值结点

void del_min(LinkList& L){ LNode* p = L->next, * pre = L; LNode* min = p, * premin = pre; if (L->next == NULL) return; pre = p; p = p->next; while (p) { if (p->data < mi...

2019-10-12 20:48:57 262

原创 王道ch1-LinkList3.将单链表中结点数逆置输出

void R_print(LinkList& L){ if (L->next != NULL) R_print(L->next); cout << L->data<<" ";}int main(){ LinkList L; tailInsert(L); R_print(L); return 0;}

2019-10-12 20:48:10 166 1

原创 王道ch1-LinkList2.删除单链表(带头节点)中所有x

void del_x(LinkList& L, int x){ LNode* p=L->next,*pre=L,*q; if (L->next == NULL) return; while (p) { if (p->data == x) { pre->next...

2019-10-12 20:47:12 177

空空如也

空空如也

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

TA关注的人

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