由于需要学习数据结构,在这里自己写了一个小demo,话说链表不是数据结构第一个模块吗,为啥我感觉坑好多。。。。。
可能自己还没入门吧。。。
注释部分有一些我觉得比较容易弄错的地方(当然啦我是小菜鸡,大佬们轻喷),我觉得还是比较详细的,实现了链表的创建,插入结点,删除结点,计算链表长度。demo可以直接运行。
/*结点节点意义相同*/
#define Elemtype int
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct Node
{
Elemtype data;
struct Node *next;
}Node ,*Linklist;
Linklist Creatlist(int n) //创建链表 ,链表的头结点不存放数据,这样方便以后的插入和删除操作
{
Linklist L,p,q,r;
L=(Linklist)malloc(sizeof(Node));
p=L; //
int num;
for (int i=1;i<=n;i++)
{
q=(Linklist)malloc(sizeof(Node));
cout<<"请输入第"<<i<<"结点数据:" ;
cin>>num;
q->data=num;
p->next=q; //这里第一次是指头结点(不存放数据)指向存放数据的第一个结点,然后依次循环
p=q; //注意尾节点的变化
}
p->next=NULL;