// DLink.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "malloc.h"
typedef struct LNode
{
int data;
struct LNode *next;
}Dlink;
int _tmain(int argc, _TCHAR* argv[])
{
Dlink *l,*s1;
Dlink *s=(Dlink *)malloc(sizeof(Dlink));
l=s;
for(int i=0;i<5;i++)
{
s->data=i+1;
s1=(Dlink *)malloc(sizeof(Dlink));
s->next=s1;
s=s1;
}
s->next=NULL;
//数据就保存到以l为头结点的链表中了
return 0;
}
扩展资料:
对于非线性的链表,可以参见相关的其他数据结构,例如树、图。另外有一种基于多个线性链表的数据结构:跳表,插入、删除和查找等基本操作的速度可以达到O(nlogn),和平衡二叉树一样。
其中存储数据元素信息的域称作数据域(设域名为data),存储直接后继存储位置的域称为指针域(设域名为next)。指针域中存储的信息又称做指针或链。
由分别表示,,…,的N 个结点依次相链构成的链表,称为线性表的链式存储表示,由于此类链表的每个结点中只包含一个指针域,故又称单链表或线性链表。
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int data;
struct node *next;
}node,*Linklist;
int main(){
int i;
int a[5]={1,2,3,4,5};
Linklist L;
L=(Linklist)malloc(sizeof(node));
node *p,*s;
L->next=NULL;
s=L;
//依次将数组a中的5个元素插入单链表中
for(i=0;i<5;i++){
p=(node*)malloc(sizeof(node));
p->data=a[i];
p->next=s->next;
s->next=p;
s=s->next;
}
//将该链表打印出来
p=L->next;
while(p){
printf("%d ",p->data);
p=p->next;
}
return 0;
}
//
#include "stdafx.h"
#include "malloc.h"
typedef struct LNode
{
int data;
struct LNode *next;
}Dlink;
int _tmain(int argc, _TCHAR* argv[])
{
Dlink *l,*s1;
Dlink *s=(Dlink *)malloc(sizeof(Dlink));
l=s;
for(int i=0;i<5;i++)
{
s->data=i+1;
s1=(Dlink *)malloc(sizeof(Dlink));
s->next=s1;
s=s1;
}
s->next=NULL;
//数据就保存到以l为头结点的链表中了
return 0;
}
vs2010下成功运行!希望对你有帮助!有疑问请追问,谢谢!