一、工具补充:
1.安装格式化对齐:sudo apt-get install clang-format
2.内存泄漏检测工具: sudo apt-get install valgrind—— valgrind ./a.out查看内存是否泄露。
二、顺序表基本操作:
1.创建顺序表:
2.尾插(在顺序表最后插入元素):
3.遍历顺序表:
4.判断表是否为空表:
5.根据名字查找元素:
6.获得指定下标元素本身:
7.按指定位置插入元素:
8.根据名字删除指定元素:
9.根据名字修改指定元素:
10.清空表中已有元素:
11.销毁顺序表:
三、顺序表的优缺点:
优点:
(1)无需为表中的逻辑关系增加额外的存储空间;
(2)可以快速随机访问元素O(1)。
缺点:
(1)插入,删除元素需要移动元素o(n);
(2)无法动态存储。
四、链表的基本概念:
链表的作用,即解决顺序存储的缺点,插入和删除,动态存储问题。
特点:
1.线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的,也可以不连续。
2.可以被存储在任意内存未被占用的位置上,所以前面的顺序表只需要存储数据元素信息就可以了。在链式结构中还需要一个元素存储下一个元素的地址。
3.为了表示每个数据元素,ai与其直接后继数据元素ai+1之间的逻辑关系,对ai来说,除了存储其本身的信息外,还需要存一个指示器直接后续的信息。
4.我们把存储元素信息的域叫数据域,把存储直接后继位置的域叫指针域。这两部分信息组成数据元素ai的存储映像,叫结点(Node)。
单向链表:
定义链表的结构体:
typedef struct
{
char name[10];
char sex;
int age;
int socre;
}DATATYPE;
typedef struct _node_
{
DATATYPE data;
struct _node_ *next;
}LinkNode;
typedef struct
{
LinkNode* head;
int clen;
}LinkList;