C语言链表创建

#include "malloc.h"
#include "stdio.h"
#define LEN sizeof(struct student)

typedef struct student
{
int num;
int age;
float score;
struct student *next;
}stu;
int n;
// 创建动态链表函数
stu *creat(void)
{
//定义结构体类型的指针
stu *head,*p1,*p2;
n=0;
p1=p2=(stu *)malloc(LEN);//开辟一个内存空间
// 输入结构体类型的数据
scanf("%d,%d,%f",&p1->num,&p1->age,&p1->score);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if (n==1)head=p1;
else
// 单向链表
p2->next=p1;
p2=p1;
p1=(stu *)malloc(LEN);
scanf("%d,%d,%f",&p1->num,&p1->age,&p1->score);
}
p2->next=NULL;
return(head);
}
main()
{
stu *p,*head;
head=creat();
if (head!=NULL)
{
do
{
printf("%d,%d,%f\n",p->num,p->age,p->score);
p=p->next;
}while(p!=NULL);
}
return 0;
}

原文地址:https://www.cnblogs.com/tudapao/p/9021055.html

时间: 2024-08-30 09:55:48

C语言链表创建的相关文章

链表创建和链表遍历算法的演示_C语言

今天搞了一个多小时,头是疼的,应该是没休息好吧,学习了数据结构这一节,感觉收益良多,下面贴上代码和心得: 1 /*24_链表创建和链表遍历算法的演示*/ 2 # include <stdio.h> 3 # include <malloc.h> 4 # include <stdlib.h> 5 6 typedef struct Node 7 { 8 int data;//数据域 9 struct Node * pNext;//指针域 10 }NODE, *PNODE;//

C语言-链表

单向链表:结构体非常适合链表结构,链表的组成:head指针.数据块节点指针p->nest.结束指针NULL. 链表操作:需要首先找到表头head指针.链表的操作包括动态链表的创建.顺序输出.删除节点.插入节点的操作. 动态存储操作函数:(ANSI规则返回的指针类型为void*,早期的为字符型指针) 分配一个块:void *malloc(unsigned int size)  //分配成功则返回指向起始地址的指针void * 分配多个块:void *calloc(unsigned n,unsign

C语言链表实例--玩转链表

下图为最一简单链表的示意图: 第 0 个结点称为头结点,它存放有第一个结点的首地址,它没有数据,只是一个指针变量.以下的每个结点都分为两个域,一个是数据域,存放各种实际的数据,如学号 num,姓名 name,性别 sex 和成绩 score 等.另一个域为指针域,存放下一结点的首地址.链表中的每一个结点都是同一种结构类型. 指针域: 即在结点结构中定义一个成员项用来存放下一结点的首地址,这个用于存放地址的成员,常把它称为指针域. 在第一个结点的指针域内存入第二个结点的首地址,在第二个结点的指针域

链表创建打印删除

链表创建打印删除:http://wenku.baidu.com/view/d2343df67c1cfad6195fa7d8.html http://bbs.ednchina.com/BLOG_ARTICLE_2143077.HTM http://zhidao.baidu.com/link?url=vdWWhzPcyNykH1NSG-EdhHnPAsmTS6VDSmm-hMZU7GZPi7-w5s-WRpANOCat9y7C5xQHYLjwjPQWeZj9yb_91q http://www.2ct

链表(创建,插入,删除和打印输出(转载)

链表(创建,插入,删除和打印输出 /*----------------------------------------------------------------------------- 文件功能:实现了动态建立一个学生信息的链表包括链表的创建.插入.删除.和打印输出学生信息包括姓名和分数本链表是带有头结点的,头结点的内容为空内容-----------------------------------------------------------------------------*//*

C语言链表实例

// 原文地址 http://www.cnblogs.com/renyuan/archive/2013/05/21/3091506.html /*在原文的基础上面做了以下补充,现在可以实现全部功能了*/ 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 typedef int elemType;//定义存入的数据的类型可以是int char 6 7 typedef struct NODE{

链表 创建 插入 删除 查找 合并

最近学习了一下单链表的操作,将代码保存如下,供以后查看. 链表创建: 1.先建立一个不含数据的头指针*head,头指针的链接域为NULL. 2.声明一个用于暂存新申请空间的指针*pc,一个用于保存创建的链表的指针*r,令*r指向*head. 3.在循环中,为指针*pc申请空间,并给数据域赋值,head->next = pc, pc->next = NULL, head = pc. #define _CRT_SECURE_NO_DEPRECATE /*取消scanf,printf不安全之类的错误

C语言链表各类操作详解

链表概述 链表是一种常见的重要的数据结构.它是动态地进行存储分配的一种结构.它可以根据需要开辟内存单元.链表有一个“头指针”变量,以head表示,它存放一个地址.该地址指向一个元素.链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址.因此,head指向第一个元素:第一个元素又指向第二个元素:……,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束.        链表的各类操

关于c语言链表的操作

这几天又讲到链表了,但是又忘记了,所以重新把关于链表的建链表,对链表进行排序,然后是删除,插入,以及遍历等功能..但是最近要考试了,所以没有写成菜单的形式..等考试完了,在进行补充吧.. 代码如下... #include<stdio.h> #include<stdlib.h> #include<string.h> struct node { int data; struct node *next; }; int main() { /*建立链表操作*/ int n,x,p