求好心人帮忙做几个数据结构的实验

来源:百度知道 编辑:UC知道 时间:2024/09/28 07:59:59
具体实验内容如下:

实验一:线性表的应用:

1.建立三元组表示的稀疏矩阵,验证两种转置算法。
2.单链表结构的操作:插入、删除、查找和输出。
3.建立单链表存储的多项式A和B。验证例题和习题中的算法,如多项式求值、两多项式相加。

实验二:栈和队列的应用
1.验证例题和习题:将一个中缀表达式转换为后缀表达式;迷宫求解;杨辉三角形等。
2. 算法设计课题:栈和队列的应用
(1)图元识别和替换 (队列算法和栈算法两种)
(2)速冻食品厂的冷库管理模拟程序Z

实验三:二叉树的应用
(1)建立一棵二叉树(结点类型自定,结点数不少于12个);
(2)对二叉树按中序遍历打印结点值;
(3)打印括号对形式的二叉树结构。
(4)统计单枝结点、双枝结点和叶结点的个数;
(5)计算此二叉树的高度。

要求是这样的:
(1)对每种基本数据结构建立C/C++描述的数据类型,包括定义struct结构与实现基本操作函数。
(2)对每种基本数据结构至少设计一个应用程序,通过测试数据检验算法和程序的正确性。

回答一部分或提供资料也行
内容很多时也可以发送到邮箱yzyz3770@163.com
定有酬谢,分数不是问题

自己做了一个二叉树转换的:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#define MaxSize 20

typedef struct node
{
char data;
struct node *lchild;
struct node *rchild;
}BTNode;

BTNode *p,*q; //定义全局变量

BTNode *creatree(char s[],int i,int j) //根据所输入的表达式建立相应的二叉树
{
int k,posi,plus=0;
BTNode *p;
if(i==j) //将操作算作为叶子结点
{
p=(BTNode *)malloc(sizeof(BTNode));
p->data=s[i];
p->lchild=NULL;
p->rchild=NULL;
return p;
}
for(k=i;k<=j;k++)
{
if(s[k]=='+'||s[k]=='-')
{
plus++;
posi=k;
}
}
if(plus==0)
for(k=i;k<=j;k++)