1. 首页 > 科技

求助大神数据结构算法题!谢谢谢谢! 数据结构怎样由中缀算式

求助大神数据结构算法题!谢谢谢谢!数据结构怎样由中缀算式

数据结构 急求算法! 谢谢大神咯

#includestdioh#includestdlibh#includemalloch#includeiostreamh #define elem int#define M 10typedef struct node{ elem data; struct node *next;}no;//以下单链表均带头节点//1int f1(no *L,elem x){ int i=0; L=L-next; while(L) { if(L-data==x) i++; L=L-next; } return i;}//2算法复杂度为O(N)void f2(no *L,int k1,int k2){ if(k1=k2) no *p=L,*q; L=L-next; while(L) { if(L-datak1) break; p=L;//记住删除第1个结点的父节点 L=L-next; } while(L datak2) }//3算法采取的是头插法node *f3(no *a,no *b){ if(!a || !b) return 0; node *c=new node,*p; if(!c) exit(1); c-next=0; while(a-next || b-next) { if(!a-next || b-next next-data a-next-data) {//当链表a为空时,或b链表存在且b链表的第1个值小于a链表 p=b-next; b-next=p-next; } else p-next=c-next; c-next=p; } return c;}

求助 这个数据结构题怎么完成 谢谢 急求····

#include<stdio.h> #include "malloc.h" typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; void CreateBiTree(BiTree &T); //创建二叉树 void PreOrder(BiTree T); //二叉树的先序遍历 void InOrder(BiTree T); // 二叉树的中序遍历 void PostOrder(BiTree T); // 二叉树后序遍历 void LeafCount(BiTree T,int &count); //统计二叉树的叶子节点 void CreateBiTree(BiTree &T) { char c; scanf("%c",&c); if(c==' ') { T=NULL; return;} T=(BiTNode*)malloc(sizeof(BiTNode)); T->data=c; CreateBiTree(T->lchild); CreateBiTree(T->rchild); } ///////////////////// void PreOrder(BiTree T) { if(!T) return; printf("%c\t",T->data); PreOrder(T->lchild); PreOrder(T->rchild); } //////////////////// void InOrder(BiTree T) { if(!T) return; InOrder(T->lchild); printf("%c\t",T->data); InOrder(T->rchild); } ///////////////////// void PostOrder(BiTree T) { if(!T) return ; PostOrder(T->lchild); PostOrder(T->rchild); printf("%c\t",T->data); } ////////////////////// void LeafCount(BiTree T,int &count) { if(!T) return; if(!T->lchild&&!T->rchild) count++; LeafCount(T->lchild,count); LeafCount(T->rchild,count); } //////////////////////// 这是部分二叉树操作的函数,自己写主函数调用吧,希望对你有帮助。

求助 这个数据结构题怎么完成 谢谢 急求····

#include<stdio.h>

#include "malloc.h"

typedef struct BiTNode{

 char data;

 struct BiTNode *lchild,*rchild;

}BiTNode,*BiTree;

void CreateBiTree(BiTree &T); //创建二叉树

void PreOrder(BiTree T);  //二叉树的先序遍历

void InOrder(BiTree T);    // 二叉树的中序遍历

void PostOrder(BiTree T);   // 二叉树后序遍历

void LeafCount(BiTree T,int &count);    //统计二叉树的叶子节点

void CreateBiTree(BiTree &T)

{

 char c;

 scanf("%c",&c);

 if(c==' ') { T=NULL; return;}

 T=(BiTNode*)malloc(sizeof(BiTNode));

 T->data=c;

 CreateBiTree(T->lchild);

 CreateBiTree(T->rchild);

}

/////////////////////

void PreOrder(BiTree T)

{

 if(!T)  return;

 printf("%c\t",T->data);

 PreOrder(T->lchild);

 PreOrder(T->rchild);

}

////////////////////

void InOrder(BiTree T)

{

 if(!T)  return;

 InOrder(T->lchild);

 printf("%c\t",T->data);

 InOrder(T->rchild);

}

/////////////////////

void PostOrder(BiTree T)

{

 if(!T)  return ;

 PostOrder(T->lchild);

 PostOrder(T->rchild);

 printf("%c\t",T->data);

}

//////////////////////

void LeafCount(BiTree T,int &count)

{

 if(!T)  return;

 if(!T->lchild&&!T->rchild)

 count++;

 LeafCount(T->lchild,count);

 LeafCount(T->rchild,count);

}

////////////////////////

这是部分二叉树操作的函数,自己写主函数调用吧,希望对你有帮助。

请高人帮忙算2个数据结构算法的问题,谢谢啊啊!

1.交换结点没意义,是要交换这两结点的数据域的内容吧。假设数据域中只有一个整型的数据成员data,可以这样:

int t;

t=p->data; p->data=p->next->data; p->next->data=t;

2. bool fun()

{ NODE *p,*q;

int n;

q=HEAD;

p=q->next;

n=2;

while(p)

{ if(p->data!=n*n-q->data)return false;

q=p;

p=p->next;

n++;

}

return true;

}