C语言复习之---链表
来源:互联网 发布:数据库工程师工资多少 编辑:程序博客网 时间:2024/05/17 03:35
/*
时间:2015年10月13日08:23:18
功能:建立链表并且输出链表中的内容
知识点:struct,指针,malloc函数和stdlib.h头文件
总结:
*/
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>
struct Node
{
int data;
struct Node * pNext;
};
struct Node * create_list();
void traverse_list(struct Node * pHead);
int main(void)
{
struct Node * pHead = NULL;//null不行 要大写的
pHead = create_list();
traverse_list(pHead);
return 0;
}
struct Node * create_list()
{
int len;
int val;
int i;
struct Node * pHead = (struct Node *)malloc(sizeof(struct Node *));//要判断是否内存分配成功 malloc函数位于头文件<malloc.h>中
if(NULL == pHead)
{
printf("内存配失败,程序终止");
exit(-1);//位于头文件<stdlib.h>中
}
struct Node * pTail = pHead;
printf("请输入你要创建的链表的长度,len=");
scanf("%d",&len);
for(i = 0;i < len;i++)
{
//pTail = pHead;//应该在循环中之外
struct Node * pNew = (struct Node *)malloc(sizeof(struct Node));
if(pNew == NULL)
{
printf("内存分配失败,程序终止");
exit(-1);
}
printf("请输入第%d个节点的值:",i+1);
scanf("%d",&val);
pNew->data = val;//先在新节点里存入数据
pTail->pNext = pNew;//使pNew与pTail建立关系
pNew->pNext = NULL;//要加上,否则会在运行过程中出错
pTail = pNew;
}
return pHead;//感觉不要pTail也行,但试过后不行,不知为何?
}
void traverse_list(struct Node * pHead)
{
struct Node * p = pHead->pNext;
while(p != NULL)
{
printf("%d ",p->data);
p = p->pNext;//很重要
}
printf("\n");
return;//最好加上,好习惯
}
时间:2015年10月13日08:23:18
功能:建立链表并且输出链表中的内容
知识点:struct,指针,malloc函数和stdlib.h头文件
总结:
*/
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>
struct Node
{
int data;
struct Node * pNext;
};
struct Node * create_list();
void traverse_list(struct Node * pHead);
int main(void)
{
struct Node * pHead = NULL;//null不行 要大写的
pHead = create_list();
traverse_list(pHead);
return 0;
}
struct Node * create_list()
{
int len;
int val;
int i;
struct Node * pHead = (struct Node *)malloc(sizeof(struct Node *));//要判断是否内存分配成功 malloc函数位于头文件<malloc.h>中
if(NULL == pHead)
{
printf("内存配失败,程序终止");
exit(-1);//位于头文件<stdlib.h>中
}
struct Node * pTail = pHead;
printf("请输入你要创建的链表的长度,len=");
scanf("%d",&len);
for(i = 0;i < len;i++)
{
//pTail = pHead;//应该在循环中之外
struct Node * pNew = (struct Node *)malloc(sizeof(struct Node));
if(pNew == NULL)
{
printf("内存分配失败,程序终止");
exit(-1);
}
printf("请输入第%d个节点的值:",i+1);
scanf("%d",&val);
pNew->data = val;//先在新节点里存入数据
pTail->pNext = pNew;//使pNew与pTail建立关系
pNew->pNext = NULL;//要加上,否则会在运行过程中出错
pTail = pNew;
}
return pHead;//感觉不要pTail也行,但试过后不行,不知为何?
}
void traverse_list(struct Node * pHead)
{
struct Node * p = pHead->pNext;
while(p != NULL)
{
printf("%d ",p->data);
p = p->pNext;//很重要
}
printf("\n");
return;//最好加上,好习惯
}
0 0
- C语言复习之---链表
- 专业课之C语言复习
- C语言之指针复习
- 复习(数据结构):链表:c语言
- C语言复习之平台问题
- C语言复习之指针数组
- C语言复习之结构体基础知识
- C语言复习之结构体基础知识
- C语言复习之结构体基础知识
- C语言复习之杨辉三角
- C语言复习之排序方法
- C语言复习之穷举法
- C语言复习之冒泡法
- C语言基础复习之指针
- C语言复习之文件的操作
- C语言复习之结构体基础知识
- C语言复习之预处理器
- 二级c语言之最后复习
- java.lang.UnsupportedClassVersionError: org/json/JSONObject : Unsupported major.minor version 52.0
- C#学习笔记
- LT8612EX,LT8612X-M,HDMI转VGA+HDMI,HDMI转HDMI+VGA,HDMI一分二福利
- android中任务栈的处理方式
- 如何增强eclipse写代码时自动补全和自动提示功能
- C语言复习之---链表
- JavaScript 对象
- 毕达哥拉斯的面包规矩
- notes reading word smart for the GRE 2nd Edition
- 通过触发器通过一个表的添加删除操作另一个表里的信息添加删除
- CentOS 6.5 安装 Nginx 1.7.8 教程
- Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (k
- 明星投资五花八门,未来将呈现何种趋势?
- codeforces 586B:Laurenty and Shop