代码拉取完成,页面将自动刷新
内容简介:
这是一个在学习数据结构和算法过程中的笔记,随着不断的学习里面的代码会不断地增加,会包含常用的数据结构和算法,以及笔试题,编程题目等等。
所使用的开发环境是Mac系统+Xcode工具+C语言
。每个类型的数据结构都会专门放在相应的.c文件里面。这里面包含了这种数据结构包含的常用操作函数
的实现。并且在对每一种数据结构都有专门的 XBxxxtest.C
文件,这里面主要写了一些常用的操作进行测试。在测试的时候,只需要在main.c引入相应的
XBxxxtest.h
文件并调用里面相关的测试函数就可以进行测试,非常方便。在以后学习新的数据结构类型的时候,都会尽量用工程已包含的数据结构实现,
可以找出自己编写的代码中的bug,也可以提高代码的复用性,每个知识点所对应的介绍都在博客中:
举个例子:
下面以线性表为例子
在XBListTest.c文件包含的函数的实现
void testXBArrayList();//顺序存储的线性表的实现
void testXBLinkList();//链式存储的线性表
/**
* 包含操作 增删改查
*/
void testXBLinkList()
{
XBLinkNode LinkNode;
initXBLinkNode(& LinkNode);//初始化
//插入元素
printf("开始添加元素:\n");
for (int i = 0; i<10; i++) {
addItemToXBLinkNode(&LinkNode, (DATATYPE)(i+10));//添加元素
}
printXBLinkNodeData(LinkNode);
printf("查找元素12所在的位置 %d \n",findItemInXBLinkNode(LinkNode, 12));
printf("在索引为0的位置插入元素100:\n");
insertItemInXBLinkNode(&LinkNode, 0, 100);
printXBLinkNodeData(LinkNode);
printf("线性表当前的长度: %d \n",getLengthForXBLinkNode(LinkNode));
printf("删除索引为4的位置的元素:\n");
deleteItemInXBLinkNode(&LinkNode, 4);
printXBLinkNodeData(LinkNode);
int x ;
printf("获取2号位置的元素的值:\n");
getItemFromXBLinkNodeByIndex(LinkNode, 2, &x);
printf("%d \n",x);
printf("替换3号位置的元素为89:\n");
replaceXBLinkNodeatIdx(&LinkNode, 3, 89);
printXBLinkNodeData(LinkNode);
}
在XBLinkList.c和XBArrayList.c分别包含了链表实现和数组实现线性表的常用的操作函数的实现
//常用的基本操作
void initXBArrayList(XBArrayList * ArrayList);
int isXBArrayListEmpty(XBArrayList * ArrayList);
int addItemToXBArrayList (XBArrayList * ArrayList,DATATYPE obj);
void clearXBArrayList(XBArrayList * ArrayList);
int getItemFromXBArrayListByIndex(XBArrayList ArrayList,int idx,DATATYPE * obj);
int findItemInXBArrayList(XBArrayList ArrayList,DATATYPE obj);
int insertItemInXBArrayList(XBArrayList *ArrayList,int idx,DATATYPE obj);
int deleteItemInXBArrayList(XBArrayList *ArrayList,int idx);
int getLengthForXBArrayList(XBArrayList ArrayList);
void printXBArrayListData(XBArrayList ArrayList);
int replaceXBArrayListatIdx(XBArrayList *ArrayList,int idx,DATATYPE obj);
在main.c里面直接调用了XBListTest.c文件的测试函数
testXBArrayList();
testXBLinkList();
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。