链 表
1.修改
int ReviseLinkList(LinkList *list, DATATYPE old, DATATYPE new);
{
1.遍历链表查找old元素
2.修改old元素为new元素
3.成功返回0
}
2.尾插法
int LastInsertLinkList(Linklist *list, DATATYPE data);
功能:
在链表末尾插入一个节点
参数:
list:链表的地址
data:要插入的数据
返回值:
成功返回0
int LastInsertLinkList(Linklist *list, DATATYPE data)
{
1.定义一个链表节点指针指向最后一个节点
2.申请一个链表节点空间并进行赋值
3.在链表末尾插入该节点
4.clen++
5.返回0
}
双向链表
1.概念
链表节点既可以找到后面的节点,也可
以找到前面的节点,这种链表成为双向
链表
2.数据结构
1.链表节点
typedef struct node
{
struct node *pre;
DATATYPE data;
struct node *next;
}LinkNode;
2.链表头
typedef struct list
{
LinkNode *head;
int clen;
int tlen;
}DouList;
3.链表的操作
1.创建
DouList *CreateDouList(int len);
功能:
创建一个双向链表
参数:
len:链表的长度
返回值:
成功返回链表地址
DouList *CreateDouList(int len)
{
1.申请链表头空间
2.申请链表节点空间
3.将链表头和空白节点链接起来
4.返回链表地址
}
2.插入
int InsertDouList(DouList *list, DATATYPE data);
功能:
在双向链表中插入一个元素
参数:
list:双向链表的地址
data:要插入的数据
返回值:
成功返回0
int InsertDouList(DouList *list, DATATYPE data)
{
1.申请插入节点的空间
2.对对应的成员变量赋值
3.区分是第一次插入还是第n次插入
4.按照区分的结果进行不同的插入
5.clen++
6.成功返回0
}
3.查看
int ShowDouList(DouList *list);
功能:
查看一个链表中的数据
参数:
list:双向链表的地址
返回值:
成功返回0
4.删除
int DeleteDouList(DouList *list, DATATYPE data);
功能:
删除某个元素
参数:
list:双向链表的地址
data:要删除的数据
返回值:
成功返回0
int DeleteDouList(DouList *list, DATATYPE data)
{
1.判断链表是否为空
2.判断该元素是否存在
3.如果存在则删除
4.成功返回0
}
5.查找
int FindDouList(DouList *list, DATATYPE data);
功能:
在双向链表中查找某个元素
参数:
list:双向链表的地址
data:要查找的数据
返回值:
存在返回1
不存在返回0
6.修改
int ReviseDouList(DouList *list, DATATYPE old,DATATYPE new);
功能:
修改双向链表中的一个元素
参数:
list:双向链表的地址
old:要修改的元素
new:要修改成的元素
返回值:
成功返回0
7.销毁
int DestroyDouList(DouList *list);
循环链表
1.概念
最后一个节点指向第一个节点的链表叫
做循环链表
2.数据结构
typedef struct node
{
DATATYPE data;
struct node *next;
}LinkNode;
typedef struct list
{
LinkNode *head;
int clen;
int tlen;
}CirList;
3.操作
1.创建
CirList *CreateCirList(int len);
2.添加
int InsertCirList(CirList *list, DATATYPE data);
3.查看
int ShowCirList(CirList *list);
4.查找
int FindCirList(CirList *list, DATATYPE data);
5.删除
int DeleteCirList(CirList *list, DATATYPE data);
6.修改
int ReviseCirList(CirList *list, DATATYPE old, DATATYPE new);
7.销毁
int DestroyCirList(CirList *list);
栈
1.概念
栈是表的一种特殊形式
FILO
后进先出
先进后出
栈顶和栈底
允许对栈进行压栈出栈操作的一端叫做栈顶
另外的一段叫做栈底
2.操作
1.创建
2.销毁
3.压栈
4.出栈
5.判断栈是否为空栈
6.判断栈是否位满栈