4个回答
展开全部
1、有环的链表指的是链表有环路,例如下面:
A->B->C->D->B,这样遍历的时候B->C->D->B就形成一个环路一直循环。
有环链表跟普通链表一样,只不过构造数据的时候会形成环路。
2、例程:
/*
结点1数据 : Visual C++ Windows
结点2数据 : Visual C++ 6.0
结点3数据 : Visual C++ 2010
结点4数据 : C++ Primer Plus
结点5数据 : Windows 7
成功找到结点。
请按任意键继续. . .
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct mode {
char s[40];
// int tr;
struct mode *next;
}*LinkList,*Node;
LinkList CreateList(int n) {
LinkList head;
Node p,q;
head = p = (mode *)malloc(sizeof(struct mode));
for(int i = 0;i < n;i++) {
q = (mode *)malloc(sizeof(struct mode));
printf("结点%d数据 : ",i + 1);
gets_s(q->s);
p->next = q;
p = q;
}
p->next = head;
return head;
}
bool FindNode(LinkList head, char *s) {
Node p = head->next;
while(p != head) {
if(strcmp(s,p->s) == 0) return true;
p = p->next;
}
return false;
}
int main() {
LinkList head = CreateList(5);
if(FindNode(head,"Windows 7")) printf("成功找到结点。\n");
else printf("没有找到指定数据的结点。\n");
return 0;
}
展开全部
有环的链表指的是链表有环路,例如下面:
A->B->C->D->B,这样遍历的时候B->C->D->B就形成一个环路一直循环。
有环链表跟普通链表一样,只不过构造数据的时候会形成环路,如之前举的例子。
A->B->C->D->B,这样遍历的时候B->C->D->B就形成一个环路一直循环。
有环链表跟普通链表一样,只不过构造数据的时候会形成环路,如之前举的例子。
追问
那他和循环链表有什莫区别??
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义长度Max,当到达长度Max后,让它从头开始循环.这时候用qp->top=(qp->top+1)%qp->Max,模除形式比如12345后top=5; top+1=6; qp->top+1%qp->Max=6%5=1; 然后从1开始循环.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有区别,环链表就是循环链表。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询