数据结构学习--创建链表
来源:互联网 发布:ubuntu mentohust下载 编辑:程序博客网 时间:2024/06/05 03:45
#include "stdio.h"#include "stdlib.h"struct pass{int number;struct pass *next;};struct pass * createList(struct pass *head){int i = 0;struct pass *p1; /*要新加的节点*/struct pass *p2; /*尾节点*/head = NULL; /*头节点*/p1 = (struct pass*)malloc(sizeof(struct pass));p2 = p1;p1->next = NULL;for(i = 1; i<=10; ++i){if(p1 == NULL)return;p1->number = i;if(head == NULL){head = p1; //第一次循环时, 表是空的, 将p1设置为表头,此时head == p2 == p1;}else{p2->next = p1; //第二次开始, p1是新的节点, p2是表尾, 将表尾的next指向新节点}p2 = p1; //p2设为表尾p1 = (struct pass*)malloc(sizeof(struct pass));}p2->next = NULL; //没有这一句, p2将指向不明位置,导致下面的temp ==NULL的判断不起作用free(p1); //一定要将将p1 free并且置为NULL, 否则指针变成"野指针", "野指针"指程序不再使用的指针, //程序员无法控制,free只是把指针所指的内存释放掉, 并没有删除指针. p1 = NULL; return head;}void print(struct pass *head){struct pass *temp;temp = head;while(temp != NULL){printf("%d ", temp->number);//如果没有p2->next = NULL, 将导致错误.temp = temp->next;}}int main(){struct pass *head = NULL;head = createList(head);print(head);}
结果如图:
0 0
- 数据结构学习--创建链表
- 数据结构学习二 数据结构之链表代码版【创建,遍历,删除,插入】
- 数据结构学习二 数据结构之链表图解版【创建,遍历,删除,插入】
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
- 算法学习-数据结构之链表操作,创建,插入,删除,查找。
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
- [数据结构]链表创建、打印、反转
- 数据结构--十字链表(相加,创建)
- 《数据结构》双向链表的创建
- 【数据结构】算法5.4 十字链表-创建
- 数据结构:链表的创建和打印
- 数据结构——头插法创建链表
- C++数据结构---链表(链表创建)
- 数据结构之链表学习
- 学习数据结构之链表
- 数据结构学习之链表
- 数据结构学习之链表
- hdu-2115(结构体,sort) I Love This Game
- oracle 11gR2 本地能连接上,远程连接不上,错误码:ORA-12541 TNS 无监听程序
- Android 监听器
- Core Animaiton - 5
- hdu 5305 Friends
- 数据结构学习--创建链表
- HTML空格
- 微信公众平台开发时需要判断微信浏览器访问
- 2015.7.23 简陋的学生通讯录管理系统
- [基本实验] 利用Burp和FireBug绕过上传漏洞的前端防护
- 大话西游
- 融云即时聊天,IM
- HDU 5305 Friends(dfs)
- 2015多校第二场 1004( Delicious Apples )