C语言,创建一个链表并赋值1、2、3、4、5,麻烦把全部程序写下

请在程序中直接赋值,不要用屏幕录入的那种。

// 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 个结点依次相链构成的链表,称为线性表的链式存储表示,由于此类链表的每个结点中只包含一个指针域,故又称单链表或线性链表。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-12
//应该写的很清楚了

#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;
}
第2个回答  推荐于2017-11-25
// 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;
}

vs2010下成功运行!希望对你有帮助!有疑问请追问,谢谢!本回答被提问者采纳

C语言,创建一个链表并赋值1、2、3、4、5,麻烦把全部程序写下
s->next=NULL;\/\/数据就保存到以l为头结点的链表中了 return 0;}

C语言程序设计 链表的综合操作(急)
用C语言编写一个程序,通过链表的建立、输出、删除、插入等基本操作,实现学生成绩管理,从键盘输入学生信息,学生信息用结构体表示,包括学号、姓名、三门课成绩:语文、数学、英语。二、课程设计目标和要求必做:1. 插入功能:在学生链表中插入一个学生的信息,要求插入后仍然保持学号有序。2. 删除功能:要求输入指定的学号...

C语言,链表怎么从大到小排序
\/\/创建data型结构,为生成链表做准备 struct data { int value;data *next;};\/\/对链表进行排列的函数 void line(data *p,int n){ int temp,i,j;data *tp;for(i=0;i<n-1;i++)for(j=0,tp=p;j<n-i-1;j++,tp=tp->next){ if(tp->value>tp->next->value){temp=tp->next->...

编写程序,建立一个带有节点的单向链表,输入字符串,并按从小到大顺序组织...
Link head; \/\/链表(不带头节点)int n;printf("输入链表的长度n: ");scanf("%d",&n);printf("连续输入%d个数据(以空格隔开): ",n);head=CreateLink(n);printf("\\n原本链表的节点是: ");DispLink(head);LinkSort(head);printf("\\n从大到小排序之后: ");DispLink(head);printf("\\n"...

C语言求解
head=init(); \/*链表初始化,使head的值为NULL*\/ for(;;) \/*循环无限次*\/ {switch(menu_select()) { case 1:head=create();break; case 2:print(head);break; case 3:search(head);break; case 4:head=mydelete(head);break; case 5:head=sort(head);break; case 6:head=insert(head,&mynew...

C语言用单链表完成多项式相加,代码如下,麻烦帮忙修改一下
printf("\\n第二个表达式:");pb=creatpoly();\/\/pa=creatpoly();\/\/<<<pa已经赋过值pb没有赋值 printf("pb = ");printpoly(pb);printf("pc = ");pc=addpoly(pa,pb);printpoly(pc);} Lpoly*creatpoly()\/\/void creatpoly()\/\/<<<返回头节点指针 { int x,y;Lpoly*ptr,*p,*head;h...

麻烦救急用C语言写
int i,score1,score2;for(i=0;i<100;i++) \/\/从文件中读取数据并链接成链表 { if(i==99) w[i].next=NULL;else w[i].next=&w[i+1];read_from_worker_file(&w[i].no,&score1,&score2,&w[i].first,&w[i].second);w[i].score=0.6*score1+0.4*score2;w[i].flag=0...

麻烦各位,我以前做了一个C语言的数据结构与算法的二项式加法,但是输入...
这个主要是语法解析了,主要是做两件事:读取输入,解析单词。处理要点有两个:1.缓冲,这个通常可以用一个字符数组或字符串指针搞定;2.判断一个单词的开始和结束:碰到单词开始标志时创建一个单词,并读取缓冲直到第一个结束标志为止。依次循环就会得到一个单词链表,要注意这里的“单词”包括运算变量、...

c语言求解
unsigned long x,t,m;float y;int i;\/\/x为输入的无符号长整型数,t表示某位上的数,m表示这位以上的数 \/\/y为输出结果 scanf("%u",&x);\/\/%u表示输入无符号数字,和%d的区别就是一个有符号,一个无符号 m=x\/10;\/\/因为m为整形,所以相除后只保留整数位 t=x-10*m;if(t\\2==0)y=t...

编写打印出一个单链表的所有元素的程序,帮忙解决一下这个问题
答案如下(C++代码):include <iostream.h> struct node { int data; \/\/定义单链表的数据类型为INT型 node *next; \/\/next指针指向下一个数据元素 };node *head; \/\/定义head为全局结构类型 void add() \/\/由于篇幅问题没有设计捕错函数 { int number;head=new node;node *p,*s...

相似回答