数据结构和C语言有什么区别?
C语言是一种编程的语言,编程的语言有很多种。
而数据结构则是讲的是关于一些数据的理论知识。
可以说不管什么编程语言都能用到数据结构的知识,数据结构是程序设计基础又核心的知识。
可以将c语言想象为一种语言,那么数据结构就是一种说话的技巧,如何让你说话更简洁,有逻辑,容易让人听懂,这表达技巧不管你用中文或者ENGLISH都可以用上。
当然,如果你想成为一个优秀的程序设计人员,数据结构是必须掌握好的
《数据结构(C语言版)》pdf下载在线阅读全文,求百度网盘云资源
《数据结构(C语言版)》(严蔚敏)电子书网盘下载免费在线阅读
链接:
提取码: mwrr
书名:数据结构(C语言版)
作者:严蔚敏
豆瓣评分:6.1
出版社:清华大学出版社
出版年份:2012-5
页数:335
内容简介:
《数据结构》(C语言版)是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参数教材。
本书的前半部分从抽象数据类型的角度讨论各种基本类型的数据结构及其应用;后半部分主要讨论查找和排序的各种实现方法及其综合分析比较。其内容和章节编排1992年4月出版的《数据结构》(第二版)基本一致,但在本书中更突出了抽象数据类型的概念。全书采用类C语言作为数据结构和算法的描述语言。
作者简介:
严蔚敏 清华大学计算机系教授,长期从事数据结构教学和教材建设,和吴伟民合作编著的《数据结构》曾获“第二届普通高等学校优秀教材全国特等奖”和“1996年度国家科学技术进步奖三等奖”。
吴伟民 广东工业大学计算机学院副教授,硕士生导师。广东省计算机学会图像图形分会秘书长。长期从事数据结构教学和系列教材建设。主要研究领域:数据结构和算法、可是计算、编译和虚拟机技术、智能系统等。和严蔚敏合作编著的《数据结构》曾获“第二届普通高等学校优秀教材全国特等奖”和“1996年度国家科学技术进步奖三等奖”。
数据结构(C语言描述)
#include stdio.h
#include stdlib.h
#include math.h
#define DataType int
#define MAXSIZE 1000
typedef struct node{
DataType data;
struct node *lchild;
struct node *rchild;
}BiTreeNode;
DataType BT[MAXSIZE];
BiTreeNode* BuildBTree(DataType BT[], int n, int i)
{
BiTreeNode * node;
if(i=n || (node=(BiTreeNode*)malloc(sizeof(BiTreeNode)))==NULL) return NULL;
node-data = BT[i];
node-lchild = BuildBTree(BT, n, 2*i+1);
node-rchild = BuildBTree(BT, n, 2*i+2);
return node;
}
void PrintLevel(BiTreeNode * bt, int level, int l)
{
if(!bt) return;
if(l level)
PrintLevel(bt-lchild, level,l+1);
if(l == level)
printf(“%4d”,bt-data);
if(l level)
PrintLevel(bt-rchild, level,l+1);
}
/* 先序凹入表示法输出, 一般通过前导的空格来凹入 #*/
/*pre,sur分别为前导后续字符,一般前导为空格字符,#*/
void PrintTree(BiTreeNode *bt,char pre,char sur,int depth,int level){
if(bt==NULL) return ; /*如果为空树,return;*/
int i=0; /*先序输出根*/
while(++ilevel) printf(“%c%c%c%c”,pre,pre,pre,pre); // 凹入,输出前导字符
printf(“%4d”,bt-data); // 输出当前节点
while(i++depth) printf(“%c%c%c%c”,sur,sur,sur,sur); // 输出后续字符
printf(“\n”);
/*输出子树*/
PrintTree(bt-lchild,pre,sur,depth,level+1);
PrintTree(bt-rchild,pre,sur,depth,level+1);
}
void CTBT(int n)
{ // 建立初始n个节点的完全二叉树
while(n–) BT[n] = n;
}
int main()
{
int i,n,depth;
BiTreeNode *bt;
scanf(“%d”,n);
CTBT(n);
bt = BuildBTree(BT, n, 0);
depth = (int)(log(n)/log(2))+1;
i=0;
while(++i=depth)
{
printf(“\nThe %dth Level:”,i);
PrintLevel(bt, i,1);
}
printf(“\n”);
PrintTree(bt,’ ‘,’-‘,depth,1);
return 0;
}
经调试这个没问题,完成了要求的三个功能