数据结构考研

Posted wangjiaolong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构考研相关的知识,希望对你有一定的参考价值。

声明:本人为21界考生,软件工程专业,备考科目:政治、英二、数二、854,正在备考中,所有文字仅为备考过程想记录下来的的经验及一些坑,仅供参考,当然我也希望这会成为一篇高分经验分享。

顺序表的实现

静态分配

//定义结构
#define MAXSIZE 10                              //存储空间最大分配量
typedef struct {    
	ElemType data[MAXSIZE];                 //用静态的“数组”存放数据元素
	int length;				//顺序表的当前长度
}SqList;					//顺序表的类型定义(静态分配方式)

动态分配

//建立顺序线性表——动态分配
#include<stdio.h>
#include<stdlib.h>				//包含malloc free的头文件

#define InitSize 10                             //顺序表的初始长度
typedef struct {
	int *data; //指示动态分配数组的指针
	int MaxSize;			        //顺序表的最大容量
	int length;				//顺序表的当前长度
}SeqList;					//顺序表的类型定义(动态分配方式)


//用malloc函数申请一片连续的存储空间
void InitList(SeqList* L) {
	L->data = (int*)malloc(InitSize * sizeof(int));
	L->length = 0;
	L->MaxSize = InitSize;
}

//增加动态数组的长度
void IncreaseSize(SeqList*L, int len) {
	int* p = L->data;
	L->data = (int*)malloc((L->MaxSize + len) * sizeof(int));
	for (int i = 0; i < L->length; i++) {
		L->data[i] = p[i];		    //将数据复制到新区域
	}
	L->MaxSize = L->MaxSize + len;		    //顺序表最大长度增加len
	free(p);				    //释放原来的内存空间
}

基本操作

插入

void ListInsert(SqList* L, int i, ElemType e) {
	for (int j = L->length; j >= i; j--) {		//将第i个元素及之后的元素后移
		L->data[j] = L->data[j - i];
	}
	L->data[i - 1] = e;			        //在i的位置放入e
	L->length++;					//长度加1
}

以上是关于数据结构考研的主要内容,如果未能解决你的问题,请参考以下文章

考研计算机专业的,那些啥考试科目代码,比如308,309之类的,是啥意思?我只是举个例子,希望

考研数据结构之单链代码

考研数据结构之单链代码

考研数据结构之单链代码

考研数据结构模板:顺序表链表栈队列

(王道408考研数据结构)第六章图-第四节6:拓扑排序(AOV网代码排序规则)