王道计算机考研 数据结构C语言复现-第一章-顺序表

这篇文章收录了王道考研课程中涉及的数据结构的所有代码。此外,本博客可能会添加一些额外的代码(不仅限于王道考研),因为408考试中会频繁考察一些冷门的知识点,所以这篇博客会涵盖所有相关的代码。这也是我数据结构的第一轮复习,希望能与大家共同进步。由于博客篇幅的限制,可能无法一次性包含所有内容,

你想要的都在下面!!!

// @FileName  :ShunXuBiao->c
// @Time      :2023/8/12 13:10
// @Author    :YKW


#include 
#include 
#include 
//线性表:储存空间连续的列表
// # define MaxSize 10
# define InitSize 10

typedef struct SeqList{
	int *data; //动态分配数组的指针
	int MaxSize;
	int length;
}SqList;
void InitList(SqList *L){
	L->data=(int*)malloc(InitSize*sizeof(int));
	L->length=0;
	L->MaxSize=InitSize;
}
void IncreaseSize(SqList *L,int len){
	int *p=L->data;
	L->data=(int*)malloc((InitSize+len)*sizeof(int));
	int i;
	for(i=0;ilength;i++){
		L->data[i]=p[i];
	}
	L->MaxSize=L->MaxSize+len;
	free(p);
}
//因为没有bool,所以用char 1 0代替bool true false,或者直接引入stdbool.h
bool ListInsert(SqList *L,int i,int e){
    //代码的健壮性
	if(i<1|i>L->length+1)
		return false;
	if(L->length>=L->MaxSize)
		return false;
	int j;
	for(int j=L->length;j>=i;j--)
		L->data[j]=L->data[j-1];
	L->data[i-1]=e;
	L->length++;
	return true;
}
bool ListDelete(SqList *L,int i,int *e){
    if(i<1|i>L->length+1)
        return false;
    *e=*&L->data[i-1];
    int j;
    for (j=i;jlength;j++){
        L->data[j-1]=L->data[j];
    }
    L->length--;
    return true;
}

void Show(SqList L){
    if(L.length==0)
        printf("ZERO!\n");
    else{
        for(int j=0;jL.length)
        return 0;
    return L.data[i-1];
}
int LocateElem(SqList L,int i){
    for (int j=0;idata[i]=i;
	L->length=0;
}

int main()
{
	SqList L;
	InitList(L);
	for(int i=0;ilength;i++){
		printf("data[%d]=%d \n",i,L->data[i]);
	}
	return 0;
}
*/

//顺序表的实现--静态分配

你可能感兴趣的:(王道数据结构课程,c++,算法,考研,学习,散列表,数据结构)