目录
text.c
后面的注释内容是对接口功能的测试。
#include "DList.h"
void menu()
{
printf("***********************************\n");
printf("**0. 退出 1. 头插 **\n");
printf("**2. 头删 3. 尾插 **\n");
printf("**4. 尾删 5. 打印 **\n");
printf("**6. 判空 7. 查找 **\n");
printf("**8. pos前插入 9. 删除pos **\n");
printf("** **\n");
printf("**注:8和9功能要复用7找到位置pos **\n");
printf("***********************************\n");
printf("***********************************\n");
}
int main()
{
DListNode* s1 = NULL;
s1= DListInit(s1);
DListNode* pos = NULL;
DListNode* pos1 = s1;
int input = 0;
do
{
menu();
printf("请输入选择:>");
scanf("%d", &input);
switch (input)
{
case secede:
{
DestroyDList(s1);
printf("退出成功\n");
break;
}
case pushfront:
{
DListData x = 0;
printf("请输入你要头插的数字\n");
scanf("%d", &x);
DListPushFront(s1, x);
printf("头插成功\n");
break;
}
case popfront:
{
DListPopFront(s1);
printf("头删成功\n");
break;
}
case pushback:
{
DListData x = 0;
printf("请输入你要尾插的数字\n");
scanf("%d", &x);
DListPushBack(s1, x);
printf("尾插成功\n");
break;
}
case popback:
{
DListPopBack(s1);
printf("尾删成功\n");
break;
}
case show:
{
ShowDList(s1);
break;
}
case empty:
{
bool tmp = EmptyDList(s1);
if (tmp == true)
{
printf("链表为空\n");
}
else
{
printf("链表不为空\n");
}
break;
}
case find:
{
int tmp = 0;
int chose = 0;
DListData x = 0;
printf("请输入你要查找的数据\n");
scanf("%d", &x);
do
{
if (tmp == 0)
{
pos1 = DListFind(s1, x);//pos1记录下第一个pos结点
tmp++;
pos = pos1;
}
else
{
pos= DListFind(pos, x);
if (pos == NULL|| pos == pos1)
{
printf("你要找的数据不存在\n");
break;
}
}
if (pos1 == NULL || pos== s1 )
{
printf("你要找的数据不存在\n");
break;
}
printf("是否要查找下一个数字%d\n", x);
printf("是(!0) 否(0)\n&