自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (1)
  • 收藏
  • 关注

原创 求树中所有叶子结点路径

typedef struct CSNode{ ElemType data; struct CSNode *fch,*nsib;}CSNode,*CSTree;typedef struct { EemType data[Max]; int top;}SqStack;void AllTreePath(CSTree T,SqStack S){ whlie(T) { Push(S,T->data); if(!T->fch) PrintStack(S); el.

2020-10-24 22:03:58 22

原创 孩子兄弟表示法和双亲表示法求树的高度/深度

typedef struct CSNode{ ElemType data; struct CSNode *fch,*nsib;}CSNode,*CSTree;int Height(CSTree T){ int hc,hs; if(T==NULL) return 0; else { hc=height(T->fch); hs=height(T->nsib); if(hc+1>hs) return hc+1; else return hs;.

2020-10-21 16:12:34 110

原创 数据结构课后答案第五章算法设计题

题目略教材:林碧英版数据结构第五章算法设计题1、2、4、5、6、7、101.typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;int DepthT(BiTree T){ int x=0,y=0; if(T==NULL) return 0; x=DepthT(T->lchild); y=DepthT(T->rchild); retu

2020-10-20 17:47:47 46

原创 数据结构课后答案第三章算法设计题6-10

题目略教材:数据结构(林碧英版)第三章算法设计题6-106.//最大公约数,辗转相除法int gcd(int a,int b){ if(a<=0 || b<=0) return 0; if(a<b) swap(a,b); if(a%b==0) return b; else gcd(b,a%b);}//最小公倍数int lcm( int x , int y ){ return x*y/gcd(x,

2020-10-18 16:52:30 34

原创 数据结构课后答案第三章算法设计题1-5

题目略教材:数据结构(林碧英版)算法设计题11.typedef struct { ElemType data[Max]; int front,rear,tag;//tag=1表示入队导致front=rear,出队导致则为0}SqQueue;bool EnQueue(SqQueue &Q,ElemType x){ if(Q.front==Q.rear&&tag==1) return false; Q.data[Q.rear]=x; Q.rear=

2020-10-17 16:40:38 28

原创 数据结构课后答案第二章算法设计题11-14

题目略教材:数据结构(林碧英版)算法设计题11-1411.typedef struct{ float c; int e;}Term;typedef struct PNode{ Term data; struct PNode *next;}PNode,*PLinkList;void dvide(PLinkList &L,PLinkList &A1,PLinkList &A2){ PNode *p=L->next,*r=A2,*s; A1

2020-10-16 17:18:13 24

原创 数据结构课后答案第二章算法设计题6-10

题目略6.typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;void Insert(LinkList &L,int x){ LNode *q=L,*p=L->next; while(p&&p->data<x) { q=p; p=p->next; } if(p->data==x) return; else { LNod

2020-10-15 16:18:56 25

原创 数据结构课后答案第二章算法设计题1-5

题目略1.typedef struct{ ElemType data[max]; int length;}SqList;bool DelSame(SqList &L){ if(L.length==0) return false; int i,j; for(i=0,j=1;j<L.length;j++) if(L.data[i]!=L.data[j]) L.data[++i]=L.data[j]; L.length=i+1; return true;

2020-10-14 16:39:08 37

原创 表达式二叉树的计算

double culexp(BiTree T){ double result,a,b; if(T) { a=culexp(T->lchild); b=culexp(T->rchild); switch(T->data) { case'+':return a+b; case'-':return a-b; case'*':return a*b; case'/':if(b!=0)return a/b; else printf(.

2020-10-13 15:56:31 20

原创 一元多项式的应用

1.存储结构typedef struct{ float c;//系数 int e;//指数}Term;typedef struct PNode{ Term data; struct PNode *next;}PNode,PLink;2.插入void Insert(PLink &L,Term x){ PNode *q=L,*p=L->next,*s; while(q) { if(p!NULL&&x.e>q->data.e

2020-10-13 15:26:35 60

原创 求树的度和高度

孩子兄弟表示法typedef struct CSNode{ ElemType data; struct CSNode *firstchild,*nextsibling;}CSNode,*CSTree;void Degree(CSTree T,int &max){ if(T==NULL) return; if(T->firstchild) { p=T->firstchild; n=1; while(p->nextsibling) {

2020-09-30 16:44:01 53

原创 将长度为n的顺序表转换为带头结点的单链表,元素位序不变

typedef struct{ Elemtype data[Max]; int length;}SqList;typedef struct LNode{ Elemtype data; struct LNode *next;}LNode,*LinkList;LinkList convert(SqList L){ LinkList A=(LNode*)malloc(sizeof(LNode)); LNode *p,*r=A; for(int i=0;i<n;i++) { .

2020-09-30 16:16:20 52

原创 输出二叉树中每个叶子结点到跟结点的路径

typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void Route(BiTree &T){ if(T==NULL) return; if(T->lchild==NULL&&T->rchild==NULL) { cout<<T->data<<endl;

2020-09-30 16:05:15 51

原创 将数组A(1:n)中所有正数排在所有负数的前边

844真题相当于一趟快速排序的划分,但是由于枢轴0没有本身的位置,所以需要每次进行交换而不是像快排那样交错进行交换void Patition_0(int A[],int n){ int x; int low=1,high=n; while(low<high) { while(low<high&&A[high]<0) high--; while(low<high&&A[low]>0) i++; if(lo

2020-09-29 16:59:17 31

原创 844题目

设从键盘输入一整数的序列:a1,a2,....,an,试编写算法实现:用栈结构存储输入的整数,当ai不等于-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法对应异常情况(入栈满等)给出相应信息typedef struct{ int data[max]; int top;}SqStack;void PushPop(SqStack &S){ int x=-1; S.top=-1; for(int i=0;i<n;i++) { scanf("%d",&

2020-09-29 16:44:08 23

原创 递增的单链表A和B表示集合,求A和B的交集并存放于A中

844真题typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;LinkList common(LinkList &A,LinkList B){ LNode *pa=A->next; LNode *pb=B->next; LNode *r=A; LNode *s; while(pa&&pb) { if(pa->data==pb->dat

2020-09-29 16:27:28 36 1

原创 用两个栈实现队列的进队、出队和判空操作

typedef struct{ ElemType data; int top;}SqStack;void EnQueue(SqStack &S1,SqStack &S2,int x){ int t; if(S1.top==max-1) { if(!Isempty(S2)) return; else { while(!Isempty(S1)) { t=Pop(S1); Push(S2,t); } Push(S1,x).

2020-09-28 16:58:29 28

原创 用队列将栈中元素逆置

元素为int型typedef struct{ int data[Max]; int front,rear;}SqQueue;typedef struct{ int data[Max]; int top;}SqStack;void function(SqStack &S){ SqQueue Q; InitQueue(Q); int t; if(S==NULL||S.top=-1) return; while(!Empty(S)) { Pop(S,t);

2020-09-28 16:23:17 119

原创 判断邻接矩阵存储的图是否为连通图

用深度优先搜索判断typedef struct{ char vex[Max]; int arc[Max][Max]; int vexnum,arcnum;}MGraph;bool visited[Max];bool Judge(MGraph G){ for(int v=0,v<G.vexnum,v++) { visited[v]=false; } DFS(G,0); for(int v=0;v<G.vexnum;v++) if(!visited[v])

2020-09-28 16:07:32 25

原创 有向图图的邻接矩阵求每个结点的度

typedef struct{ char vex[Max]; int arc[Max][Max]; int vexnum,arcnum;}MGraph;void Print_io(MGraph G){ int v=G.vexnum; int e=G.arcnum; for(int i=0;i<v;i++) { int out=0; for(int j=0;i<v;j++) { out+=G.arc[i][j]; } } cout<<".

2020-09-28 15:51:29 52

原创 求二叉链表深度的算法

844真题typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;int Depth(BiTree T){ int level; if(T==NULL) return 0; else { int ldepth=Depth(T->lchild); int rdepth=Depth(T->rchild); if(ldepth>rdept

2020-09-28 15:23:10 67

原创 二叉树的后序遍历的逆序输出

typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void PostOrder(BiTree T,SqStack &S){ if(T!=NULL) { reverse_PostOrder(T->lchild); reverse_PostOrder(T->rchild); Push(S,T->data); }}void Pri.

2020-09-27 16:40:28 296

原创 将单链表中的偶数和奇数放到两个链表里

844真题元素类型为inttypedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;void devide(LinkList &L){ LNode *q=L,p=L->next,*s; LinkList *Odd=(LNode *)malloc(sizeof(LNode)); LinkList *Even=(LNode *)malloc(sizeof(LNode)); while(p)

2020-09-27 16:19:46 67

原创 判断单链表序列

升序序列返回1,降序返回-1,无序返回0844真题typedef struct LNode{ Elemtype data; struct LNode *next;}LNode,*LinkList;int judge(LinkList L){ LNode *p=L->next; while(p->data==p->next->data) p=p->next;//找到起始不相等的元素 if(p->next->data>p->d

2020-09-27 16:03:02 11

原创 线性表的逆置

844真题1.顺序存储typedef struct{ ElemType data[MaxSize]; int length;}SqList;void Reverse(SqList &L){ ElemType t; for(i=0;i<L.length/2;i++) { t=L.data[i]; L.data[i]=L.data[L.length-i+1]; L.data[L.length-i+1]=t; }}2.链式存储typedef st

2020-09-25 16:44:56 24

原创 在单链表中删除值相同的多余结点

typedef struct LNode{ ElemTpye data; struct LNode *next;}LNode,*LinkList;LinkList Del_Com(LinkList &L){ LNode *p,*q,*s; for(p=L->next;p!=NULL;p=p->next) { for(q=p->next,s=p;q!=NULL;q=q->next) { if(q->next->data==p-&gt.

2020-09-25 15:55:00 45

原创 将无向图的邻接矩阵转化为邻接表

typedef struct{ int vertex[max]; int arc[max][max]; int vexnum,aecnum;}MGraph;typedef struct ArcNode{ int adjvex; struct ArcNode *next;}ArcNode;typedef struct VNode{ int data; ArcNode *first;}VNode,AdjList[max];typedef struct{ AdjList ver.

2020-09-25 15:36:59 189

原创 找出两个链表的值相同的结点并生成新的链表

设计生成集合C=A交B A,B,C用链式结构表示2013年844真题typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;LinkList common(LinkList A,LinkList B){ LinkList C=(LNode *)malloc(sizeof(LNode)); LNode *p,*q,*s; for(p=A-...

2020-09-24 17:07:44 25

原创 求二叉树中结点x的双亲结点

typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;BiTNode *parent(BiTree T,ElemType x){ BiTNode *ans; if(T==NULL) return NULL; if(T->lchild==NULL&&T->rchild==NULL) return NULL else { if.

2020-09-24 16:50:48 827 1

原创 在单链表的头结点后插入一个结点

typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;void Insert(LinkList &L,ElemType x){ if(L==NULL) return; LNode *s=(LNode*)malloc(sizeof(LNode)); s->data=x; s->next=L->next; L->next=s;}2013年.

2020-09-24 16:27:53 20

原创 创建有向图的邻接矩阵的算法

typedef struct { VertexType vexs[VNum]; EdgeType Arc[VNum]; int vexnum,arcnum;}MGraph;void Create(MGraph &G,int v,int e){ G.vexnum=v; G.arcnum=e; for(i=0;i<v;i++) scanf(&G.vexs[i]); for(i=0;i<v;i++) for(j=o;j<v;j++) G.ar.

2020-09-24 14:40:59 48

原创 带头结点的有尾指针的链队列的出队入队操作

typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;typedef struct{ LinkList front;//指向头结点 LNode *rear;//队尾指针}LinkQueue;void EnQueue(LinkQueue &Q,ElemType x){ LNode *p=(LNode*)malloc(sizeof(LNode)); p->data=x; p-&.

2020-09-23 16:54:31 97

原创 求二叉链表中的最大值结点

typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;ElemType Max(BiTree T){ if(T==NULL) return; m=T->data; if(T->lchild&&T->rchild) if(T->lchild>T->rchild) return (m>T->lch.

2020-09-23 15:58:58 9

原创 在有序循环链表中插入新结点

2011年844真题某电器商场仓库中一批电视机,按其价格从低到高的次序构成了一个循环链表,表中的每个元素指出了价格、数量和链指针三个域。现在新到m台价格为h元的电视机入库。试编写出仓库电视机链表增加电视机的算法typedef struct LNode{ int num; float price; struct LNode *next;}LNode,*LinkList;void Insert(LinkList L,int m,float h){ LNode *p,q; p=L-&g

2020-09-23 15:28:10 40

原创 求顺序存储的二叉树中结点i,j最近的公共祖先结点

ElemType Com_Ancestor(SqTree T,int i,int j){ if(T[i]!='#'&&T[j]!='#'); { whlie(i!=j) { if(i>j) i=i/2; else j=j/2; } return T[i]; }}

2020-09-23 14:38:52 22

原创 在二叉树中查找值为x的结点并输出所有祖先(值x的结点至多有一个)

void Search(BiTree T,ElemType x){ BTNode *p=T,r=NULL; Stack S; InitStack(S); while(p!=NULL||!IsEmpty(S)) { if(p&&p->data!=x) { Push(S,p); p=p->lchild; } else if(p->data==x) { for(i=1,i<=S.top;i++) { prin.

2020-09-22 16:19:45 277 1

原创 删除二叉树中元素值为x的结点及其子树

void DeleteTree(BiTree T){ if(T) { DeleteTree(T->lchild); DeleteTree(T->rchild); free(T); }}void Search(BiTree T,ElemType x){ SqQueue Q; if(T) { if(T->data==x) { DeleteTree(T); return; } InitQueue(Q); EnQueue(Q,T);.

2020-09-22 15:32:28 378

原创 交换二叉树的左右子树

void swap(BiTree T){ if(T) { swap(T->lchild); swap(T->rchild); temp=T->lchild; T->lchild=T->rchild; T->rchild=temp; }}

2020-09-22 15:18:20 25

原创 计算二叉树中度为2的结点个数

int Node2(BiTree T){ if(T) return 0; else if(T->lchild&&T->rchild) return Node2(T->lchild)+Node2(T->rchild)+1; else return Node2(T->lchild)+Node2(T->rchild);}

2020-09-22 15:01:36 331

原创 判断一个二叉树是否是完全二叉树

bool IsComplete(BiTree T){ InitQueue(Q); if(!T) return 1; EnQueue(Q,T); while(!IsEmpty(Q)) { DeQueue(Q,p); if(p) { EnQueue(Q,p->lchild); EnQueue(Q,p->rchild); } else while(!IsEmpty(Q)) { DeQueue(Q,p); if(p) .

2020-09-22 14:56:22 17

租房管理系统- python.rar|鸡蛋找房.rar

python的一个作业,页面用的tkinter,写的有点捞,不过控件的使用还是可以的,尤其是photoimage研究了好久

2019-05-19

空空如也

空空如也

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

TA关注的人 TA的粉丝

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