链表的创建 (初学)

#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node * next;
}*P_node,node;
P_node CreateNode(int x)//开辟节点,创建节点
{
P_node q=(P_node)malloc(sizeof(node));//创建节点p,类型为P_node型
q->data=x;//读入数据x
q->next=NULL;//next域初始化
return q;//把q的值带回去返回
}
int main()
{
int x,N,i;
P_node head,tail;
scanf("%d",&N);
head=CreateNode(N);//头指针里面装入N,节省空间
tail=head;//初始时头指针与tail指向头结点
for(i=0;i<N;i++)//输入
{
scanf("%d",&x);
P_node q=CreateNode(x);
tail->next=q;
tail=tail->next;
}
P_node read;//用一个read指针来读指针,并且输出
read=head->next;
while(read)//输出
{
printf("%d ",read->data);
read=read->next;
}
return 0;
}

时间: 2024-08-07 04:32:06

链表的创建 (初学)的相关文章

单链表 初始化 创建 头插法 尾插法 插入 删除 查找 合并 长度

#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR -1 #define TRUE 1 #define FALSE -1 #define NULL 0 #define OVERFLOW -2 #define ElemType int #define Status int typedef int ElemType typedef int Status #define LEN sizeof(LNode) #

单链表的创建算法

单链表的创建算法 当一个序列中只含有指向它的后继结点的链接时,就称该链表为单链表. 单链表的示意图如下: Head指针为单链表的头指针,单链表L:L既是单链表的名字,也是其头指针.链表中的最后一个结点的指针域定义为空指针(NULL). 单链表的定义: struct Node { ElemType data; struct Node *next; }; typedef struct Node LNode; typedef struct Node *LinkedList; 单链表有带头结点和不带头结

链表 :链表的创建+遍历

今天从数据结构开始看起,首先了解的是链表.我先从链表的创建开始,本人习惯使用java,开始介绍也使用java实现 链表 链表的创建 1.1连表的插: package link; /**  * linkCreate是创建链表,主要有链表的创建,  * 链表建立,链表的测试,打印链表的长度  * @author Administrator  * 在这里使用的是  *  */ public class LinkCreate<Item> { private Node first; private in

链表的创建以及链表节点的添加和删除

单链表的创建过程有下面几步: 1 ) 定义链表的数据结构; 2 ) 创建一个空表; 3 ) 利用malloc ( )函数向系统申请分配一个节点; 4 ) 将新节点的指针成员赋值为空. 若是空表,将新节点连接到表头:若是非空表,将新节点接到表尾; 5 ) 推断一下是否有兴许节点要接入链表,若有转到3 ),否则结束; 单链表的输出过程有下面几步 1) 找到表头; 2) 若是非空表.输出节点的值成员,是空表则退出; 3 ) 跟踪链表的增长,即找到下一个节点的地址; 4) 转到2 ). 接下来来一步步实

[数据结构】【c语言】链表的创建和遍历

第一次写代码的博客,一个刚刚接触的新手,来这里主要是为了记录自己,方便自己以后浏览,也欢迎大家指正.先来个简单的,动态链表的创建和遍历. #include<stdio.h> #include<stdlib.h> #include<malloc.h> //定义链表的节点 typedef struct LNode { int data; struct LNode *next; } *LinkList; //创建链表函数 LinkList CreateList() { Lin

链表的创建,插入,删除,输出基本操作

#include<stdio.h>#include<cstdlib> struct student  //定义一个学生结点,结点包括值域和指针域{ int num;//学号 char name[20];//姓名 char address[20];//地址 struct student *next;//定义结点的指针域,指向下一个结点};typedef struct student LIST;LIST *CreateList();LIST *InsertNode(LIST *h,LI

链表的创建及逆序打印

1.链表的创建,以下: void AddToTail(Link ** head,int value) { Link * p = new Link(); Link * ahead = *head; p->value = value; p->next = NULL; if(*head == NULL) *head = ahead = p; else { while(ahead->next) { ahead=ahead->next; } ahead->next = p; } } 以

c语言动态链表的创建

创建动态连链表就是将一个个节点连接起来 (1)动态生成节点 (2)输入节点数据 (3)将节点链在一起 例: typedef struct Data { char num[20]; char name[10]; char sex; float english; float chinese; float math; }; typedef struct Node { struct Data data;//结构体类型//结构体嵌套 struct Node* next;//结构体指针型 }node,*Pn

C++单链表的创建与操作

链表是一种动态数据结构,他的特点是用一组任意的存储单元(可以是连续的,也可以是不连续的)存放数据元素.链表中每一个元素成为“结点”,每一个结点都是由数据域和指针域组成的,每个结点中的指针域指向下一个结点.Head是“头指针”,表示链表的开始,用来指向第一个结点,而最后一个指针的指针域为NULL(空地址),表示链表的结束.可以看出链表结构必须利用指针才能实现,即一个结点中必须包含一个指针变量,用来存放下一个结点的地址.结点中只有一个next指针的链表称为单链表,这是最简单的链表结构. 首先定义一个