TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构链表组件化思维脑图思维导图

链表组件化思维脑图思维导图

  收藏
  分享
免费下载
免费使用文件
U967041282 浏览量:782024-05-21 17:22:51
已被使用11次
查看详情链表组件化思维导图

创建头文件,源代码文件等内容讲解

树图思维导图提供 链表组件化思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 链表组件化思维脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:b6182e239d41b528d5420fa5834a0e1c

思维导图大纲

链表组件化思维导图模板大纲

创建头文件

datatype.h 头文件用于规划自定义类型

linkedlist.h 头文件用于规划增删改查等数据维护功能

collections.h 头文件用于规划排序查找等数据管理功能

创建源代码文件

LinkedList.cpp 和 Collections.cpp 来定义实现声明的函数功能

useLinkedList.cpp 和 useCollections.cpp 用于测试驱动开发组件

链表操作(useLinkedList.cpp)

创建链表,向链表中添加数据

PLinkedList list = createLinkedList(); add(list, "apple"); add(list, "orange"); add(list, "grape"); add(list, "banana"); add(list, "peach");

向链表某下标位置插入数据

测试用例

insert(list, 2, "red");//中间位置插入 insert(list, 0, "blue");//头部位置插入 insert(list, 8, "green");//尾部位置插入

按下标号删除节点

测试用例

const char*bssj =(const char*)removeIndex(list,2);

修改节点存储的值

测试用例

set(list, 2, "GRAPE");

下标式遍历节点

测试用例

for (int i = 0; i < size(list); i++) { const char* data = (const char*)get(list, i); printf("%s\n", data); }

迭代式遍历节点

测试用例

iterator(list); while (hasNext(list)) { const char* data = (const char*)next(list);printf("%s\n", data); }

寻找数据所在下标

定义Compare类型的函数指针

int my_strcmp(void* s1, void* s2) { const char* ps1 = (const char*)s1; const char* ps2 = (const char*)s2; return strcmp(ps1, ps2); }

测试用例

char str[] = "peach"; printf("peach的下标:%d\n", indexOf(list, str, my_strcmp));

删除第一个满足的数据所在下标

测试用例

removeData(list, "peach", my_strcmp);

清空链表、释放链表

测试用例

clear(list);

释放链表的堆空间

free(list); list = NULL;

实现栈的逻辑 LIFO

存储逻辑

后进先出

push 压入栈

pop 弹出栈

实现队列的逻辑 FIFO

存储为线性表

存取逻辑

先进先出

测试用例

PLinkedList queue = createLinkedList(); addFirst(queue, "aa"); addFirst(queue, "bb");const char* str = (const char*)removeLast(queue); printf("%s\n",str); str = (const char*)removeLast(queue); printf("%s\n", str);

LinkedList.cpp 源代码文件

函数实现

createLinkedList()

add()

createNode()

用于把数据打包到堆内存

insert()

void* removeIndex(PLinkedList list, int index)

void set(PLinkedList list, int index, void* newdata)

int size(PLinkedList list)

void* get(PLinkedList list, int index)

void iterator(PLinkedList list)

int hasNext(PLinkedList list)

void* next(PLinkedList list)

int indexOf(PLinkedList list, void* data, Compare fun)

void removeData(PLinkedList list, void* data, Compare fun)

void clear(PLinkedList list)

void* pop(PLinkedList list)

void addFirst(PLinkedList list, void* data)

void addFirst(PLinkedList list, void* data)

void addFirst(PLinkedList list, void* data)

void addLast(PLinkedList list, void* data)

void* removeFirst(PLinkedList list)

void* removeLast(PLinkedList list)

链表外部操作(useCollections.cpp 源代码)

连接两个链表

测试用例

PLinkedList list1 = createLinkedList(); PLinkedList list2 = createLinkedList(); add(list1, "apple"); add(list1, "orange");add(list2, "one"); add(list2, "two");iterator(list1); while ( hasNext(list1)) { const char* str =(const char*)next(list1); printf("%s\n",str); }

交互两个节点的数据

寻找链表中的最大值与最小值

测试用例

const char* max_str = (const char*)max__(list1, my_strcmp); printf("最大字符串:%s\n",max_str); const char* min_str =(const char*)min__(list1, my_strcmp); printf("最小值:%s\n", min_str);

对链表节点的数据进行升序排序

折半查找链表中的数据

打乱链表的数据顺序

增加随机数需要的头文件

#include <stdlib.h> #include<time.h>

对链表数据进行翻转

替换链表中符合的数据为新数据

Collections.cpp源代码文件(函数实现)

void addAll__(PLinkedList list1, PLinkedList list2)

void swap__(PLinkedList list, int i, int j)

void* max__(PLinkedList list, Compare fun)

void* min__(PLinkedList list, Compare fun)

void sort__(PLinkedList list, Compare fun)

int binarySearch__(PLinkedList list, void* key, Compare fun)

void shuffle__(PLinkedList list)

void reverse__(PLinkedList list)

void replaceAll__(PLinkedList list, void* oldVal, void* newVal, Compare fun)

相关思维导图模板

精细化营销思维导图

树图思维导图提供 精细化营销 在线思维导图免费制作,点击“编辑”按钮,可对 精细化营销  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:2c4b8112404aa6081349eed61911ad55

认知过程思维导图

树图思维导图提供 认知过程 在线思维导图免费制作,点击“编辑”按钮,可对 认知过程  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:79e4a3c9dd8aecb8f977eee444068854