十字交叉链表代码
时间: 2023-07-09 19:12:33 浏览: 64
下面是一个简单的十字交叉链表的实现代码:
```c++
#include <iostream>
using namespace std;
struct Node {
int data;
Node* right;
Node* down;
};
Node* createNode(int data) {
Node* newNode = new Node();
newNode->data = data;
newNode->right = NULL;
newNode->down = NULL;
return newNode;
}
void insert(Node** head, int data) {
Node* newNode = createNode(data);
if (*head == NULL) {
*head = newNode;
return;
}
Node* current = *head;
Node* prev = NULL;
while (current != NULL && current->data < data) {
prev = current;
current = current->down;
}
if (prev == NULL) {
newNode->down = *head;
*head = newNode;
}
else {
newNode->down = prev->down;
prev->down = newNode;
}
newNode->right = current;
}
void printList(Node* head) {
while (head != NULL) {
Node* temp = head;
while (temp != NULL) {
cout << temp->data << " ";
temp = temp->right;
}
cout << endl;
head = head->down;
}
}
int main() {
Node* head = NULL;
insert(&head, 5);
insert(&head, 10);
insert(&head, 7);
insert(&head, 3);
insert(&head, 1);
insert(&head, 9);
cout << "The cross-linked list is: " << endl;
printList(head);
return 0;
}
```
这个代码实现了十字交叉链表的插入和打印功能。你可以根据需要进行修改和扩展。