❶ 数据结构与算法分析 有两个版本,一个是C版本,另一个是C++描述版。他们有什么区别呢
区别就在于:对于数据结构,如果用C语言实现链表结构,则只能提供一些链表的操作函数,无法将链表当成一个整体对象,而用C++则可以实现一个链表类,将链表封装成一个整体。而对于算法来说,则一样,C++中的具体算法也是用C语言实现的。
❷ 数据结构(c语言版)
测试数据1:
创建二叉树,输入先序扩展序列:ABD##E##C#F##
先序遍历输出节点:ABDECF
中序遍历输出节点:DBEACF
后序遍历输出节点:DEBFCA
二叉树示意图:
A
/
BC
//
DE#F
///
######
测试数据2:
创建二叉树,输入先序扩展序列:ABC##DE#G##F###
先序遍历输出节点:ABCDEGF
中序遍历输出节点:CBEGDFA
后序遍历输出节点:CGEFDBA
二叉树示意图:
A
/
B#
/
CD
//
##EF
//
#G##
/
##
#include<stdio.h>
#include<stdlib.h>
typedefstructNode//二叉树的结构体
{
chardata;//字符
structNode*lchild;//左分支
structNode*rchild;//右分支
}Bitree;
//创建二叉树:用"先序遍历"(递归法)
voidCreateBiTree(Bitree**bt)
{
charch;
scanf("%c",&ch);//输入字符
if(ch=='#')//'#'是空节点NULL
*bt=NULL;
else
{
*bt=(Bitree*)malloc(sizeof(Bitree));
(*bt)->data=ch;
CreateBiTree(&((*bt)->lchild));
CreateBiTree(&((*bt)->rchild));
}
}
//用"先序遍历"输出节点(递归法)
voidpreOrder(Bitree*ptr)
{
if(ptr!=NULL)
{
printf("%c",ptr->data);
preOrder(ptr->lchild);
preOrder(ptr->rchild);
}
}
//用"中序遍历"输出节点(递归法)
voidinOrder(Bitree*ptr)
{
if(ptr!=NULL)
{
inOrder(ptr->lchild);
printf("%c",ptr->data);
inOrder(ptr->rchild);
}
}
//用"后序遍历"输出节点(递归法)
voidpostOrder(Bitree*ptr)
{
if(ptr!=NULL)
{
postOrder(ptr->lchild);
postOrder(ptr->rchild);
printf("%c",ptr->data);
}
}
intmain()
{
Bitree*root;
printf("创建二叉树,输入先序扩展序列:");
CreateBiTree(&root);
printf("先序遍历输出节点:");
preOrder(root);
printf(" 中序遍历输出节点:");
inOrder(root);
printf(" 后序遍历输出节点:");
postOrder(root);
printf(" ");
return0;
}
❸ 数据结构与算法分析:C语言描述的内容简介
《数据结构与算法分析:C语言描述(原书第2版)》内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括。由于《数据结构与算法分析:C语言描述(原书第2版)》选材新颖,方法实用,题例丰富,取舍得当。《数据结构与算法分析:C语言描述(原书第2版)》的目的是培养学生良好的程序设计技巧和熟练的算法分析能力,使得他们能够开发出高效率的程序。从服务于实践又锻炼学生实际能力出发,书中提供了大部算法的C程序和伪码例程,但并不是全部。一些程序可从互联网上获得。
《数据结构与算法分析:C语言描述(原书第2版)》是《Data Structures and Algorithm Analysis in C》一书第2版的简体中译本。原书曾被评为20世纪顶尖的30部计算机着作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的着作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材。
在《数据结构与算法分析:C语言描述(原书第2版)》中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。
全书特点如下:
●专用一章来讨论算法设计技巧,包括贪婪算法、分治算法、动态规划、随机化算法以及回溯算法
●介绍了当前流行的论题和新的数据结构,如斐波那契堆、斜堆、二项队列、跳跃表和伸展树
●安排一章专门讨论摊还分析,考查书中介绍的一些高级数据结构
●新开辟一章讨论高级数据结构以及它们的实现,其中包括红黑树、自顶向下伸展树。treap树、k-d树、配对堆以及其他相关内容
●合并了堆排序平均情况分析的一些新结果
《数据结构与算法分析:C语言描述(原书第2版)》是国外数据结构与算法分析方面的标准教材,介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。《数据结构与算法分析:C语言描述(原书第2版)》的编写目标是同时讲授好的程序设计和算法分析技巧,使读者可以开发出具有最高效率的程序。 《数据结构与算法分析:C语言描述(原书第2版)》可作为高级数据结构课程或研究生一年级算法分析课程的教材,使用《数据结构与算法分析:C语言描述(原书第2版)》需具有一些中级程序设计知识,还需要离散数学的一些背景知识。
❹ 《数据结构与算法分析:C语言描述(原书第2版) 》这本书比起其他书,可以么看这本书需要什么基础
额,我想你说的《数据结构与算法分析》应该是Weiss写的那本吧,那本书豆瓣给出了9分的评分,已经算是非常高的分数了,但计算机世界的经典着作犹如浩瀚的海洋,了不起的编程书籍还有很多。
Kernighan的《程序设计实践》是让你全面了解编程该做些什么的经典着作,尽管这书非常地薄。
cormen的《算法导论》和Skiena 《算法设计手册》是比《数据结构与算法分析》更大部头的巨着。
Bentley的《编程珠玑》(1,2卷)将带你领略算法的力量。
侯捷的《STL源码剖析》,深入讲解C++标准库的实现细节,让你真正见识顶尖高手的杰作。
stevens 的《unix环境高级编程》《unix网络编程》是程序员的进阶宝典,应当一读再读,因为你最终会明白,你的程序是运行在操作系统上的,是需要和网络交互的,你需要了解他们,和他们友好相处。
C++之父Bjarne Stroustrup的三本大作:《 C++程序设计语言 》、《C++程序设计原理与实践 》、《C++语言的设计和演化 》是C++语言的最权威的指南,同时也是经典编程着作。
Bryant的《深入理解计算机系统》都是能告诉你计算机底层做了什么工作,让你更好地理解计算机,更好地利用CPU的天书。
关于软件开发方面的经典着作有《程序员修炼之道》《代码大全》《重构》《设计模式》,在任何一个编程论坛的推荐表里,这些都是程序员必看图书。
还有一本书叫《计算机程序的构造和解释》,神一样的着作,它可以颠覆你的编程思维。
当然,计算机算法的顶尖之作要算knuth的《计算机程序设计艺术》(1-4卷),其内容极深极广极难,那真是如浩瀚之海洋,叹为观止了。
所谓术业有专攻,每个领域都有其经典的着作,这就要根据你个人的兴趣去进一步探究了。例如程序设计语言与编译器、操作系统内核、硬件设计、人工智能与机器学习、自然语言处理、信息论与信号处理、网络编程、机器人等等。