数据结构单链表——建立单链表
0.建立单链表前的工作
#include
#include
//定义结构体
typedef int Elemtype;
typedef struct LNode{Elemtype data; //单链表结点中的数据域,用来存放数据LNode *next; //单链表结点中的指针域,用来存放下一个结点的地址
}LNode,*Linklist;
1.头插法建立单链表
Linklist Create_head(Linklist &L){LNode *s; //定义s指针int x; //用来保存数据L=(LNode*)malloc(sizeof(LNode)); //向内存申请开辟一个LNode类型大小的内存空间,L作为头结点L->next=NULL; //将头指针的next置空scanf("%d",&x);while(x!=999){ //若输入为999则结束输入s=(Linklist)malloc(sizeof(LNode)); //向内存申请为s开辟一个LNode类型大小的内存空间s->data=x; //将x的值赋值给s结点的数据域datas->next=L->next; //s结点指向头结点的下一个结点L->next=s; //再将头结点指向s结点scanf("%d",&x); //再次输入数据}return L; //返回L的地址
}
主函数调用
int main(){Linklist L; //定义一个LNode类型的变量LCreate_head(L); //头插法创建单链表printlist(L); //打印输出return 0;
}
运行示例

2.尾插法建立单链表
//尾插法建立单链表
Linklist Create_tail(Linklist& L) {int x; L = (Linklist)malloc(sizeof(LNode));LNode*s,*r=L; //与头插法不同的是需要定义一个尾指针r,r始终指向单链表中最后一个结点scanf("%d",&x);while (x!=999){s = (LNode*)malloc(sizeof(LNode));s->data = x; r->next=s; //当前的尾结点指向sr = s; //将s的值传给r,目的是将s作为当前的尾结点scanf("%d", &x);}r->next = NULL; //插入完成后将r->next置空return L;
}
主函数调用
int main(){Linklist L; //定义一个LNode类型的变量LCreate_tail(L); //尾插法创建单链表printlist(L); //打印输出return 0;
}
运行示例

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
