1. 简单链表
#include <iostream>
using std::cout;
using std::endl;
struct node
{
int data;
node *next;
};
//明确是变量还是指针
int main()
{
node *p1, *p2;
p1 = (node *)malloc(sizeof(node));
p2 = (node *)malloc(sizeof(node));
p1->data = 10;
p1->next = NULL;
p2->data = 20;
p2->next = p1;
}
结果
2.链表初始化,并且依次打印节点值
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
struct node
{
int data;
node *next;
};
int main()
{
node *head; // 增加一个变量,记录头指针
node *p1, *p2;
int N, num;
head = NULL;
p1 = NULL;
p2 = NULL;
cout << "input a number:" << endl;
cin >> N;
cout << "&p1: " << &p1 << endl;
for (int i = 0; i < N; i++) {
cin >> num;
p1 = (node *)malloc(sizeof(node));
p1->data = num;
if (head == 0){
head = p1;
}
else {
p2->next = p1;
}
p2 = p1;
}
p2->next = NULL;
node *p;
p = head;
while (p != NULL) {
cout << p->data << endl;
p = p->next;
}
}