前言
程序=数据结构+算法。本文通过两种简单的方式实现链表这种基础的数据结构。
1结构体方式实现
#include <iostream>
using namespace std;
struct Node{
Node(int data) :data(data), next(NULL) {}
int data;
Node *next;
};
int main()
{
Node *head = new Node(1);
head->next = new Node(2);
head->next->next = new Node(3);
head->next->next->next = new Node(4);
Node *p = head;
while (p!=NULL) {
cout << p->data << "->";
p = p->next;
}
cout<< endl;
system("pause");
return 0;
}
2数组方式实现
#include <iostream>
int data[10];//数据域
int next[10];//指针域
//在index结点后面添加结点p,然后在p里面存储值value
void add(int ind, int p, int val) {
next[ind] = p;//next结点指向p
data[p] = val;//p结点里面存储的是value
return;//这样就完成了添加结点的操作
}
int main(){
int head = 3;//头节点是3
data[3] = 0;//3结点里面存储的是0
add(3, 5, 1);//3结点后面添加5结点 5结点里面存储的值是1
add(5, 2, 2);
add(2, 7, 3);
add(7, 9, 100);//7结点后面放9结点 9结点里面存储的值是100
//以上构造链表
int p = head;//访问链表
while (p != 0)
{
printf("%d->", data[p]);
p = next[p];
}
//cout<< endl;
system("pause");
return 0;
}
总结
(如果您发现我写的哪里有错误,欢迎在评论区批评指正)