数据结构---关于顺序表、链表的一些事

一、顺序表

1.顺序表:用一段地址连续的存储单元依次存储数据元素的线性结构。

2.地址连续的空间,一般情况下采用数组,数组有静态数组和动态数组

   因此,顺序表分为静态顺序表、动态顺序表

静态顺序表

结构体变量分别为:一个数组、有效元素的个数

DataType array[MAX_SIZE];  //存储数据的空间
//	int size;   //1.有效数据    2.可通过下标方式进行访问

动态顺序表:(可以联想为他是一个桶)

结构体变量为:数据块指针(桶在哪)、当前有效数据个数(有多少水)、容量(痛的容量)

      DataType	    *array;
	int         capacity;
	int	     size;

在这里存在一个扩容的过程

1.容量变大              2.开辟空间            3.将老数据写进新空间                  4.释放老空间           5.将新空间挂起

        pSLD->capacity *= 2;
	DataType *NewArray = (DataType *)malloc(sizeof(DataType)*pSLD->capacity);
	int i;
	for (i = 0; i < pSLD->size; i++)
	{
		NewArray[i] = pSLD->array[i];
	}
	free(pSLD->array);
	pSLD->array = NewArray;

具体的一些代码实现过程戳这里啦~

https://blog.csdn.net/Z_JUAN1/article/details/80749333

二、链表

链表:一种链式存储的线性表,用一组地址任性的存储单元存放线性表的数据元素,称存储单元为一个节点。

  1.  DataType    data;  
  2.     struct SListNode *pNext;  

链表分为:单链表、双链表、双向循环链表

具体一些代码点这里啦~

https://blog.csdn.net/z_juan1/article/details/80729933

猜你喜欢

转载自blog.csdn.net/z_juan1/article/details/80749190