[c语言数据结构中结构体定义问题]编译器逐行解析,在定义next之前,编译器已经知道struct student这个结构类型的存在,所以可以用它来定义next。 next是指向struct student结构的指针类型。一般像这种用法,都是用...+阅读
#include
没考虑到你可能用纯c编译器
如果是的话销毁函数改一下
void Distroy(BiTree *T)//销毁 { if((*T)!=NULL) { BiTree L,R; L=(*T)->lchild; R=(*T)->rchild; printf("%c销毁成功!\n",(*T)->data); free(*T); (*T)=NULL; Distroy(&L); Distroy(&R); } }
主函数中改为
Distroy(&Ta);
如果是VC6.0的话两者编译都没问题。
数据结构c版
int LocateElem(LinkList *L,ElemType e)
{
LinkList *p=L->next;
int i=1;
while (p!=NULL & p->data!=e)
{
p=p->next;
i++;
}
if(p==NULL)
return(0);
else
return(i);
}
int ListInsert(LinkList *&L,int i, ElemType e)
{
int j=0;
LinkList *p=L,*s;
while(j { j++; p=p->next; } if(p==NULL) return 0; else { s=(LinkList *)malloc(sizeof(LinkList)); s->data=e; s->next=p->next; p->next=s; return 1; } } C++的数据结构一般都是提供模版的,而且在重装运算符方面做得比较出色,一般都是用类模版做数据结构,实现一个模版之后,基本上可以与很多数据类型通用. C在这方面完全没有优势,在做数据结构前,通常先定义自己的类型,如typedef int elemtype,之后再定义数据结构,定义完数据结构后,在实现算法这方面,你实现了算法,但回过头来看看,你的算法只介定于已经定义的数据结构,即你的算法能够对你已经成为定义的数据结构里的的int(elemtype)起作用,但是,当你想把数据结构里的elemtype改为char时,你会发现原先写的算法很难运行得了.不过这个一般也不成什么问题,只是每次你想用到的数据结构时,数据结构里的数据类型不同时,你必须重新将算法再做一遍,以确保不会出错. 两者的比较,C++虽提供类模版,但存在着不确定性,因为你不确定你先前写的那个模版是否通用,这是对于中低手而言,高手一般不存在这样的问题.可以参考标准模版库STL.这里面有很多模版,而且不管是你自己定义的类型,还是编译器里已经存在的类型,都能够通用,是一个强大的工具. 对于C来说,虽然没有这方面的优势,但一个算法出来,绝对是针对某一个类型的,也就是说它具有针对性,或者说确定性. 至于两者用不用都学,这要看个人喜好了,如果你喜欢C++,想深入学习的话,C++版的数据结构不学是不行的,对于C来说也是同样的. 就我而言,我刚开始是学C的,后来转学C++,之后又回过头来学C数据结构,又转学C++数据结构.对于C来说,我觉得算法很容易写,而对于C++,有时我会拿不定主意怎么写出一个通用的算法.以上都是个人见解,至于你能明白多少,那就得看你自己了! 以下为关联文档: c语言版数据结构#include #include struct chain { int value; struct chain *next; }; struct chain *create() { struct chain *head,*tail,*p; int x; head = tail = NULL; while(scanf(... C语言数据结构与算法分析C语言描述Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi... c语言数据结构赋值问题你是传值,不是传址。如下修改,能正确得到理想结果: #include<stdio.h> #include<stdlib.h> //void initstack(struct snode*); struct snode { int data[10]; int top; }; main... c语言中结构的赋值问题p=head和p=head->next有什么区别吗? 这个当然有区别,head的首地址指向的是结构体中的 i 成员变量,也就是head->i的地址。(注意是首地址,而不是等于p=head->i。且p=head->i,等号两... C语言结构体排序问题由于你只是交换字符串,所以修改如下,请检验。 用strcpy(s1,s2)进行复制字符串,不能直接s1=s2。 #include #include typedef struct { char number[10];//书号 char name[50];//书... 高分求:迷宫问题数据结构C语言这个迷宫的路径不是唯一的,因此从不同方向开始试探执行结果也可能会不唯一。我写的是参考书上的,共有八个方向可以试探。 栈解决迷宫主要的几个问题: 1.迷宫的存储 2.栈的设计... 急!C语言程序数据结构排序算法的问题#include"stdio.h" #include"stdlib.h" #include "string.h" #define Max 100 //假设文件长度 typedef struct{ //定义记录类型 int key; //关键字项 }RecType; typedef RecType Se... 关于严蔚敏C语言版数据结构的栈PUSH实现代码ElemType是否是笔误? 这个应该是笔误。。 另外对于追加那个,顺序栈是需要连续地址的内存,打个比方,比如原来栈的容量是从内存地址2000到2100这段空间,现在不够用了,需要增加100,也... 数据结构c语言版严蔚敏的问题:两个有序线性表的交集合并成菜鸟路过。。。 #include#include#define OK 1 #define ERROR 0 typedef struct { int *elem; int length; int listsize; } SqList; int InitList_Sq(SqList *L,int len) {...数据结构C版和数据结构C版有什么大的区别吗