链表的基本结构:
单链表
(1)单链表的创建
#include <iostream>
using namespace std;
struct Node {
int data;
Node *next;
};
Node *head, *p, *tail;
int x;
int main() {
cin >> x;
head = new Node; // 申请头结点
tail = head;
while (x != -1) {
p = new Node; // 申请一个新结点
p->data = x;
p->next = NULL;
tail->next = p;
tail = p;
cin >> x;
}
p = head->next; // 头指针没有数据,只要从第一个结点开始就可以
while (p->next != NULL) {
cout << p->data << " ";
p = p->next;
}
cout << p->data << endl; // 最后一个结点的数据单独输出
return 0;
}
(2)查找数据域满足一定条件的结点
p = head->next;
while ((p->data != x) && (p->next != NULL))
p = p->next;
if (p->data == x) 找到了处理
else 输出不存在
(3)取出单链表的第i个结点的数据域
void get(Node *head, int i) {
Node *p; int i;
p = head->next;
j = 1;
while ((p != NULL) && (j < i)) {
p = p->next;
j++;
}
if ((p != NULL) && (j == i)) cout << p->data << endl;