数据结构实验之链表一:顺序建立链表
2016-07-24 09:18
435 查看
好久都没有写博客了,这次做一个简单的链表题,找找感觉。
输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。
第一行输入整数的个数N;
第二行依次输入每个整数。
输出这组整数。
不得使用数组!
现在写的代码与以前写的并没有太大的提升,只有几处细微的改动
#include<stdio.h>
#include<stdlib.h>
//定义链表
struct node
{
int data;
struct node *next;
};
int main()
{
//定义指针
struct node *p,*tail,*head;
int i,n;
//建立头结点
head=(struct node *)malloc(sizeof(struct node));
head->next=NULL;
tail=head;
//循环输入
scanf("%d",&n);
for(i=0;i<n;i++)
{
p=(struct node *)malloc(sizeof(struct node));
scanf("%d",&p->data);
tail->next=p;
tail=p;
}
//结尾处为NULL
p->next=NULL;
//输出
p=head->next;
while(p!=NULL)
{
printf("%d",p->data);
if(p->next!=NULL)
printf(" ");
else
printf("\n");
p=p->next;
}
return 0;
}
题目描述
输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。
输入
第一行输入整数的个数N;第二行依次输入每个整数。
输出
输出这组整数。
示例输入
8 12 56 4 6 55 15 33 62
示例输出
12 56 4 6 55 15 33 62
提示
不得使用数组!现在写的代码与以前写的并没有太大的提升,只有几处细微的改动
#include<stdio.h>
#include<stdlib.h>
//定义链表
struct node
{
int data;
struct node *next;
};
int main()
{
//定义指针
struct node *p,*tail,*head;
int i,n;
//建立头结点
head=(struct node *)malloc(sizeof(struct node));
head->next=NULL;
tail=head;
//循环输入
scanf("%d",&n);
for(i=0;i<n;i++)
{
p=(struct node *)malloc(sizeof(struct node));
scanf("%d",&p->data);
tail->next=p;
tail=p;
}
//结尾处为NULL
p->next=NULL;
//输出
p=head->next;
while(p!=NULL)
{
printf("%d",p->data);
if(p->next!=NULL)
printf(" ");
else
printf("\n");
p=p->next;
}
return 0;
}
相关文章推荐
- 三大原理(计算机原理、操作系统原理、编译原理)两个协议(TCP与HTTP协议)一种结构(数据结构)
- MySQL索引背后的数据结构及算法原理
- ES6新特性:JavaScript中Set和WeakSet类型的数据结构
- 最小生成树问题(Kruskal 算法)(克鲁斯卡尔)
- Agri-Net(prim算法,最小生成树问题)
- 61条面向对象的法则
- SMS的体系结构
- 软件开发入门学习的个人看法
- 算法学习(数据结构)-程序员必回
- 数据结构中各种树
- 欢迎使用CSDN-markdown编辑器
- 数据结构笔记--haffman树与haffman编码分析
- 数据结构笔记--通过与BF算法的比较理解KMP算法
- 数据结构笔记--循环队列分析
- 数据结构笔记--二叉树的非递归遍历与按层遍历分析
- php基本语法及基本数据结构(一)
- POJ 3450--->Corporate Identity(后缀数组求多个字符串的公共子串)
- SDUT 3346 数据结构实验之二叉树七:叶子问题
- HDU 1671 phone list 数据结构+Trie树(字典树、前缀树)
- SDUT 3344 数据结构实验之二叉树五:层序遍历