9.19
今天上午学了算法与数据结构的循环链表和双向链表的插入以及删除,学了线性表的合并,其中合并包括无序线性表以及有序线性表。同时线性表的合并还能用于多项式的创建。
以下是循环链表的合并。
要合并两个循环链表,首先需要找到它们的尾节点,并将第一个链表的尾节点连接到第二个链表的头节点,同时将第二个链表的尾节点连接到第一个链表的头节点,以形成一个循环链表。以下是一个合并两个循环链表的示例代码:
struct Node { int data; Node* next; }; Node* mergeCircularLists(Node* head1, Node* head2) { if (head1 == nullptr) { return head2; } if (head2 == nullptr) { return head1; } Node* tail1 = head1->next; while (tail1->next != head1) { tail1 = tail1->next; } Node* tail2 = head2->next; while (tail2->next != head2) { tail2 = tail2->next; } tail1->next = head2; tail2->next = head1; return head1; }
在上述代码中,我们首先检查特殊情况,即某个链表为空的情况。如果其中一个链表为空,我们直接返回另一个链表作为合并后的结果。 然后,我们找到两个链表的尾节点(即循环链表中的最后一个节点)。遍历第一个链表,直到找到尾节点 tail1,它的下一个节点是头节点 head1。同样地,遍历第二个链表,找到尾节点 tail2,它的下一个节点是头节点 head2。 接下来,我们将 tail1 的下一个节点连接到 head2,将 tail2 的下一个节点连接到 head1,从而形成一个循环链表。 最后,返回合并后的循环链表的头节点,即 head1。
下午学习了javaweb的html基础知识,其中html文件标签需要<html></html> <title></title> <head></head> 当需要添加图片时,需要用到标签<img>。