我试图构建圆形链接lisrt,但我有问题如何找到尾部,如果它是链接列表
我尝试这个购买后2个链接我有错误
Node* ListMakeNode(Node* before, int val)
{
Node* node = (Node*)malloc(sizeof(Node));
Node* tail = (Node*)malloc(sizeof(Node));
tail = node;
if (node) {
node->value = val;
node->next = before;
}
while (tail->next != NULL && tail->next != node && tail->next != tail)
tail = tail->next;
tail->next = node;
return node;
}
根据循环链表的基础,您需要front
、rear
和temp
typedef struct node
{
int value;
struct node *next;
} Node;
Node *front=NULL,*rear=NULL,*temp;
要创建节点,需要定义front
和rear
Node *newnode;
newnode=(Node*)malloc(sizeof(Node));
newnode->value = 12;
newnode->next=NULL;
if(rear==NULL)
front=rear=newnode;
else
{
rear->next=newnode;
rear=newnode;
}
rear->next=front;
要显示所有节点,您需要在不干扰前部或后部的情况下使用temp
,并且您需要进行检查,直到rear
达到
temp=front;
for(;temp!=rear;temp=temp->next)
printf("n%d t",temp->value);
printf("n%d t",temp->value);
此处为完整代码https://pastebin.com/sQQAsj6m