#include<stdio.h>
#include<stdlib.h>
//树
typedef char BiElemType;
typedef struct BiTNode{
BiElemType c;
struct BiNode *lchild;
struct BiNode *rchild;
}BiTNode,*BiTree;
//辅助队列
typedef struct tag{
BiTree p;
struct tag *pnext;
}tag_t,*ptag_t;
//层次建树
int main(){
//1.申请树的新节点与根结点 ,新节点用来插入新元素,根节点用来链接新节点
BiTree pnew;
BiTree tree;
char c;
//2.申请辅助队列,辅助队列是链队列,需要有头指针,尾指针,和新空间,还有总指向树要插入的元素的根节点的指针
ptag_t phead=NULL;
ptag_t ptail=NULL;
ptag_t listpnew=NULL;
ptag_t pcur;
//3.要输入字符串 abcdefghij
while(scanf("%d",&c)){ //循环输入
//1.循环输入的截至条件 读取到‘\n’
if(c=='\n'){
break;
}
//2.为输入进来的元素申请储存空间,calloc申请空间,与malloc写法相似,calloc对申请出来的空间进行初始化
pnew = (BiTree)calloc(1,sizeof(BiTNode));
pnew->c = c;
listpnew = (ptag_t)calloc(1,sizeof(tag_t));
listpnew->p = pnew;
//3.判断是否是树的第一个结点
if(tree==NULL){
tree = pnew;
phead = listpnew;
ptail = listpnew;
pcur = listpnew;
}else{
ptail->pnext = listpnew;
ptail = listpnew;
//4.将b结点放入树中
if(NULL==pcur->p->lchild){
pcur->p->lchild = pnew;
}else if(pcur->p->rchild==NULL){
pcur->p->rchild = pnew;
pcur = pcur->pnext;
}
}
}
}
报错点是 4.将b结点放入树中中的if语句的执行语句,
错误显示:
#include<stdio.h>
#include<stdlib.h>
//树
typedef char BiElemType;
typedef struct BiTNode{
BiElemType c;
struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode,*BiTree;
//辅助队列
typedef struct tag{
BiTree p;
struct tag *pnext;
}tag_t,*ptag_t;
//层次建树
int main(){
//1.申请树的新节点与根结点 ,新节点用来插入新元素,根节点用来链接新节点
BiTree pnew;
BiTree tree = NULL;
char c;
//2.申请辅助队列,辅助队列是链队列,需要有头指针,尾指针,和新空间,还有总指向树要插入的元素的根节点的指针
ptag_t phead=NULL;
ptag_t ptail=NULL;
ptag_t listpnew=NULL;
ptag_t pcur;
//3.要输入字符串 abcdefghij
while(scanf(" %c",&c)){ //循环输入
//1.循环输入的截至条件 读取到‘\n’
if(c=='\n'){
break;
}
//2.为输入进来的元素申请储存空间,calloc申请空间,与malloc写法相似,calloc对申请出来的空间进行初始化
pnew = (BiTree)calloc(1,sizeof(BiTNode));
pnew->c = c;
listpnew = (ptag_t)calloc(1,sizeof(tag_t));
listpnew->p = pnew;
//3.判断是否是树的第一个结点
if(tree==NULL) {
tree = pnew;
phead = listpnew;
ptail = listpnew;
pcur = listpnew;
} else {
ptail->pnext = listpnew;
ptail = listpnew->pnext;
//4.将b结点放入树中
if(pcur->p->lchild==NULL){
pcur->p->lchild = pnew;
} else if(pcur->p->rchild==NULL){
pcur->p->rchild = pnew;
pcur = pcur->pnext;
}
}
}
}
假设稀疏矩阵A采用三元组表示,编写一个函数,计算其转置矩阵B,要求B也用三元组表示。