西安交通大学软件工程考研经验分享
  • 浏览:604 评论:2 人
  • 1楼

    很多学弟私聊我说能不能写一个专业课的学习路线或者心得,想了想,该写!算是top学长对你们扬帆起航的路上助一把力。(top学长原创)
    西交专业课是数据结构+程序设计。
    首先讲下程序设计,其实西交的程序设计题目不是很难(大概pat乙级的难度),这里强烈推荐算法笔记这本书,代码写的精简,让人看了就很舒服。我准备这个程序设计的时候就是从暑假开始,一直到9月份,每天晚上都会敲几题,后面就基本差不多了。程序设计在西交专业课的占比不多,大概也就三题的样子,差不多30分吧,主要还是接下来的数据结构。 《22西 安 交 大 软 件 工 程 考 研 群 1 0 7 3 3 6 8 9 6 4》
    数据结构这门课在我之前的帖子中已经强调了它的难度,可能很多人不以为然,觉得不就一门专业课么,再难那又能难到哪去。这里我只想说,以前考研的人不是傻子,专业课均分低是有道理的。接下来按章节讲一讲学习路线。
    第一章 数据结构绪论
    这里比较多的就是数据结构的一些概念题,容易出填空和简答题。一些概念要记住,考前背一背也可,我那时候就是早上在河边背的,背完政治背专业课简答题,简答题文档已发群里,有需要自行下载,质量还是很高的。
    知识点:
    数据结构概念,逻辑结构,物理结构,数据元素,数据对象,抽象数据类型,算法概念,算法特性以及评价标准
    渐近时间复杂度(这里提一下,算法导论对这个解释很详细,完全符合西交的要求,建议有这本书的去看一下这块内容,算法导论只在这里有用,其他就不需要看了。另外,如何算时间复杂度的技巧,之前也在群里教过,基本秒杀,来的晚的同学可以看一下以前的作业题),空间复杂度
    第二章 线性表
    第二章是线性表的相关知识,涉及c语言的指针,结构体的知识点,建议先掌握基础知识再去学线性表。接下来的每个模块的结构体描述要掌握
    知识点:
    2.1线性表定义,特点。
    2.2顺序表
    静态分配
    #define maxsize 100 //定义表长typedef int DataType //定义数据元素的类型typedef struct{ //顺序表的定义 Datatype data[maxsize]; //静态分配存储表元素的数组 int n; //实际表元素个数}SeqList;
    动态分配
    #define initsize 100 //定义表长的初始定义typedef int DataType //定义数据元素的类型typedef struct{ //顺序表的定义 Datatype * data; //静态分配存储表元素的数组 int n,maxsize; //实际表元素个数}SeqList;
    线性表初始化操作
    data = (DataType *)malloc(sizeof(DataType) * initsize)maxsize=initsize;n=0
    顺序表的插入删除,以及等概率下平均移动次数的计算。
    2.3 线性表的链接存储表示
    单链表的定义
    typedef int DataType typedef struct node{ Datatype data; struct node * link;}Linknode, *Linklist;
    动态分配节点
    p = (Linknode *)malloc(sizeof(Linknode))p = (Linklist)malloc(sizeof(Linknode))想想为什么第二种写法也可以
    首元节点的概念,单链表插入删除的要点(区分有无头节点),循环单链表,循环双链表,静态链表,以及静态链表的特点。
    第三章 栈和队列
    知识点:
    3.1 栈
    栈的基本运算,catalan函数,进栈和出栈的两种处理方式,共享栈以及链栈。
    顺序栈的静态存储分配
    #define maxsize 100 typedef char DataType typedef struct{ Datatype elem[maxsize]; int top; }SeqStack;
    顺序栈的动态存储分配
    #define maxsize 100 typedef char DataType typedef struct{ Datatype * elem; int top,maxsize; }SeqStack;
    进栈和出栈的两种方式(区别要掌握,什么时候用什么方式):
    1.指针先进一,再按栈顶指针所指位置进入元素。效果是栈顶是最后进入元素所指位置。这种是初始top==-1.
    2.先按栈顶指针所指位置进元素,再把指针加1.效果是栈顶指针所指位置是下一个元素所进的位置。这种初始top==0.
    链栈的相关知识点就不写了,什么链栈不要头节点这种自己掌握下。
    栈的一些应用题,如进栈序列,出栈序列,顺序栈和链栈的概念以及比较和优缺点。
    用栈的算法解决一些问题,如链表逆转,用另一个栈将现在