文章目录
1. 思路
1.1 按值插入



1.2 寻找

1.3 求长度
返回size
2. 代码
2.1 DList.h
//按值插入
void insert_val(List *list, ElemType x);
//寻找
Node* find(List *list, ElemType x);
//长度
int length(List *list);
2.2 DList.cpp
void insert_val(List *list, ElemType x)
{
Node *p = list->first->next;
while(p->next != NULL && p->data < x)
{
p = p->next;
}
if(p->next == NULL && p->data < x)
{
push_back(list, x);
}
else
{
Node *s = buynode(x);
s->next = p->next;
p->next->prior = s;
p->next = s;
s->prior = p;
list->size++;
}
}
Node* find(List *list, ElemType x)
{
Node *p = list->first->next;
while(p != NULL && p->data != x)
{
p = p->next;
}
if(p == NULL)
{
printf("链表中没有该值\n");
return NULL;
}
return p;
}
int length(List *list)
{
return list->size;
}
2.3 main.cpp
case 6:
printf("请输入要插入的值: ");
scanf("%d", &Item);
insert_val(&mylist, Item);
break;
case 7:
printf("请输入要查找的值: ");
scanf("%d", &Item);
p = find(&mylist, Item);
printf("%d地址为: %p\n", Item, p);
break;
case 8:
printf("链表的长度为:%d\n", length(&mylist));
break;
3. 结果
3.1 按值插入

3.2 寻找

3.3 求长度

本文介绍了如何在双链表中实现按值插入节点、查找特定值的节点以及计算链表的长度。通过DList.h、DList.cpp和main.cpp三个文件的代码详细阐述了这些操作的实现过程,并展示了相应的运行结果。

903

被折叠的 条评论
为什么被折叠?



