数据结构与算法分析
① 《数据结构与算法分析:c语言描述(原书第2版) 》这本书比起其他书,可以么看这本书需要什么基础
额,我想你说:“数据结构与算法分析”魏斯写道,正确的,这本书在豆瓣给出了9分的高分,被认为是一个非常高的分数,但计算机世界经典名曲,如浩瀚的海洋伟大的编程书籍。
Kernighan的编程做法是让你全面了解做什么经典,这本书是非常薄的编程。
Bentley的“编程
cormen”算法导论“Skiena”算法设计手册“的分析”的数据结构和算法更大量的是一个杰作。珍珠“(卷1和2)将带你领略的电源的算法。
侯捷的STL源码分析,深入讲解了C + +标准库的实现细节,让你真正的顶尖选手的杰作。
史蒂文斯的“UNIX水平的编程环境UNIX网络编程是程序员的高级系列,一读再读,因为你最终会了解你的程序运行在操作系统上,需要交互和网络,你需要了解他们,与他们友好相处。
C + +'父Bjarne Stroustrup的三大杰作:“C + +程序设计语言,C + +程序设计原理与实践”,“C + +语言的设计和演变”C + +语言权威的指南,也是编程的经典书籍。
科比“深入理解计算机系统能够告诉你的计算机基础做了什么让你的计算机更好地了解和更好地利用CPU圣经。 BR />
经典的书,这些都是软件开发“程序员修炼”代码完成“重建”设计模式“,任何编程论坛成员推荐表中的程序必须看的书。
有一本书叫做计算机程序的构造和解释,上帝的作品一样,它可以颠覆你的编程思想。
当然,计算机算法来计算的顶部Knuth的“计算机程序设计艺术”(1-4卷)非常困难的非常广泛的,深刻的内容,如浩瀚的海洋,然后它是惊人的一个。
所谓术业有专攻,每个地区都有自己的经典之作,根据您的个人利益,有必要去进一步探讨。如编程语言和编译器,操作系统内核,硬件设计,人工智能,机器学习,自然语言处理,信息理论,信号处理,网络编程,机??器人等。
② 数据结构与算法分析
数据结构与算法分析(C++版第2版)/国外计算机科学教材系列
作者:着者:美Shaffer,C.A;译者:张铭等译 出版社:电子工业出版社
③ 数据结构与算法分析与数据结构有什么区别
挺绕人的,不过大体一个是模型,一个是处理模型的方法
④ 数据结构与算法分析练习
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<stack>
usingnamespacestd;
structnode{
inte;
structnode*next;
};
/**
*初始化link
*head为根节点,不保存数据
*/
structnode*initLink(structnode*link){
link=(structnode*)malloc(sizeof(structnode));
link->next=NULL;
structnode*q=link;
intn=0;
while(n!=-1){//终止条件自行修改,比方说,建立n个节点
cin>>n;
if(n>0){
structnode*t=(structnode*)malloc(sizeof(structnode));
t->e=n;
t->next=NULL;
q->next=t;
q=t;
}
}
returnlink;
}
/**逆置(头插法)
*另有,递归法。递归法耗用资源多,头插法比较好。
*#成功逆置返回1,否则返回0(不会有0的情况发生)
*/
intReverseList(structnode*head){
structnode*p=head->next,*q;
head->next=NULL;
while(p){
q=p;
p=p->next;
q->next=head->next;
head->next=q;
}
return1;
}
/**
*#打印出转换的N进制数(N<9),成功返回1,否则返回0
*/
intten_to_N(intx,intN){
intr=-1;
if(x>0){
r=x%N;
ten_to_N(x/N,N);
}
if(r>=0)
printf("%d",r);
return1;
}
structqueue{
stack<int>s1,s2;
};
/**
*#将x插入到队列q中,成功返回1,否则返回0
*/
intenqueue(structqueue*q,intx){
if(q->s1.size()>0)
q->s1.push(x);
else{
while(q->s2.size()>0){
q->s1.push(q->s2.top());
q->s2.pop();
}
q->s1.push(x);
}
return1;
}
/**
*#队列q执行出队操作,成功则返回出队的元素,否则返回0
*/
intdequeue(structqueue*q){
intt=0;
if(q->s2.size()>0){
q->s2.top();
q->s2.pop();
}else{
while(q->s1.size()>1){
q->s2.push(q->s1.top());
q->s1.pop();
}
if(q->s1.size()==1){
t=q->s1.top();
q->s1.pop();
}
}
returnt;
}
intmain()
{
structnode*head=NULL;
head=initLink(head);
if(ReverseList(head)==1){
structnode*p=head->next;
while(p){
printf("%d",p->e);
p=p->next;
}
printf(" ReverseListdone. ");
}
ten_to_N(10,4);
structnode*q;
while(head){
q=head->next;
free(head);
head=q;
}
}
⑤ 数据结构与算法分析 c语言描述 难不难
您好!!
C语言的基本语法你只要掌握了,,数据结构都不是问题
数据结构就是 数据的组织方式 或者说 是一种更便捷的让程序更高效的方法。这里面用到的都是C语言的基础知识。
就像你做饭 一个辣椒可以炒素菜、可以炒荤菜、也可以炸成辣椒油……
同样一个东西 根据自己目的的不同 选择一个最高效的方法 就是数据结构与算法的目的.
书上的数据结构与算法 只是给你一些实际应用中的列子和一些基本方法,现实中做程序还需要你自己根据自己的需要去组合去研究更好的算法……
很高兴为您解答,不懂的来问我,。谢谢!!
⑥ 数据结构与算法分析,c,c++,java版 之间的区别是什么
数据结构与算法分析和具体的语言之间没有关系,一般算法都是用伪代码写的,类Pascal语言,推荐楼主看数据结构与算法分析是不要看C,C++,JAVA版这一类的。
⑦ 《数据结构与算法分析》和《算法导论》这两本书哪个好
算法导论堪称经典啊,还有黑书,也称为经典。没有学高等数学完全没关系的,只是个思维问题。学算法就是坚持坚持,坚持就是胜利。不过会很辛苦的。有空多上POJ做做题。
⑧ java数据结构与算法分析
于之前面试android的时候考到了很多关于java的知识,所以这次重温数据结构知识就打算用java来学习,毕竟android是以java为基础的,而且我现在学习的j2ee架构也是以java为基础的。
java中的类就是对现实世界的对象的一种抽象,例如人就是一个类别,人有名字,联系电话,住址等成员属性,人拥有说话,吃饭,走路等成员方法。类就是这样,定义了一种对象,它有什么,会做什么。
继承——子类就是父类的一种特定类别。例如学生就是人的子类,学生属于人,是特定的一类人。所以我们让学生继承人,这样学生可以拥有人的属性和方法,也就是说,学生也有了名字,联系电话,住址等成员属性,拥有说话,吃饭,走路等成员方法。但是学生还有特定的一些方法(读书,上课),或者特定的一些属性(学号,年级),这些可以添加在子类中。
因为每个子类都属于父类,例如每个学生都属于人,所以可以用父类来引用子类的对象:People p = new Student();反过来不行。
java中一个类只能继承一个父类,也就是单继承。
但一个类可以实现多个接口,间接地实现了多继承。接口就是一系列方法的声明,没有实现。于之前面试android的时候考到了很多关于java的知识,所以这次重温数据结构知识就打算用java来学习,毕竟android是以java为基础的,而且我现在学习的j2ee架构也是以java为基础的。
java中的类就是对现实世界的对象的一种抽象,例如人就是一个类别,人有名字,联系电话,住址等成员属性,人拥有说话,吃饭,走路等成员方法。类就是这样,定义了一种对象,它有什么,会做什么。
继承——子类就是父类的一种特定类别。例如学生就是人的子类,学生属于人,是特定的一类人。所以我们让学生继承人,这样学生可以拥有人的属性和方法,也就是说,学生也有了名字,联系电话,住址等成员属性,拥有说话,吃饭,走路等成员方法。但是学生还有特定的一些方法(读书,上课),或者特定的一些属性(学号,年级),这些可以添加在子类中。
因为每个子类都属于父类,例如每个学生都属于人,所以可以用父类来引用子类的对象:People p = new Student();反过来不行。
java中一个类只能继承一个父类,也就是单继承。
但一个类可以实现多个接口,间接地实现了多继承。接口就是一系列方
⑨ 数据结构与算法分析怎么样
简单易读懂的一本算法和数据结构书。如果你只想读一本算法书,那就读这本。
祝你愉快,满意请采纳哦