① c语言单链表
C语言创建单链表如下:
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
#include "iostream.h"
typedef struct node
{
intdata;
node * next;
}node , * List;
void create(int n)
{
int c;
List s,L;
L=(List)malloc(sizeof(node));
L->next=NULL;
printf("请输入第1个数据:");
scanf("%d",&c);
L->data=c;
for(int i=2;i<=n;i++)
{
s=(List)malloc(sizeof(node));
printf("请输入第%d个数据:",i);
scanf("%d",&c);
s->data=c;
s->next=L;
L->next =s;
}
printf("链表创建成功!");
}
void main()
{
int n;
printf("请你输入链表的个数:");
scanf("%d",&n);
create(n);
}
② C语言如何创建单链表
C语言创建单链表如下:
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
#include "iostream.h"
typedef struct node
{
intdata;
node * next;
}node , * List;
void create(int n)
{
int c;
List s,L;
L=(List)malloc(sizeof(node));
L->next=NULL;
printf("请输入第1个数据:");
scanf("%d",&c);
L->data=c;
for(int i=2;i<=n;i++)
{
s=(List)malloc(sizeof(node));
printf("请输入第%d个数据:",i);
scanf("%d",&c);
s->data=c;
s->next=L;
L->next =s;
}
printf("链表创建成功!");
}
void main()
{
int n;
printf("请你输入链表的个数:");
scanf("%d",&n);
create(n);
}
③ C语言链表问题
#include
"malloc.h"
struct
num
{
int
a;
struct
num
*next;
};
void
main()
{
int
i,n=0;
struct
num
*head,*p1,*p2;
head=(struct
num
*)
malloc(sizeof(struct
num));
p1=head;
/*p2=head;*/
for
(i=0;i<5;i++)
{
p2=(struct
num
*)
malloc(sizeof(struct
num));
scanf("%d",&n);
p2->a=n;
p1->next=p2;
p1=p2;
}
p1->next=NULL;
p1=head->next;
while(p1!=NULL)
{
printf("%d
",p1->a);
p1=p1->next;
}
printf("\n");
}
***********************************************************
#include
"malloc.h"
struct
num
{
int
a;
struct
num
*next;
};
void
main()
{
int
i,n=0;
struct
num
*head,*p1,*p2;
head=(struct
num
*)
malloc(sizeof(struct
num));
p1=head;
/*p2=head;*/
for
(i=0;i<5;i++)
{
p2=(struct
num
*)
malloc(sizeof(struct
num));
scanf("%d",&(p2->a));
p1->next=p2;
p1=p2;
}
p1->next=NULL;
p1=head->next;
while(p1!=NULL)
{
printf("%d
",p1->a);
p1=p1->next;
}
printf("\n");
}
{
http://chinastar.uueasy.com/read-htm-tid-292-fpage-6.html}
可以看一下这篇文章,链表创建输出
④ c语言链表
指针在x86系统里大小是32位4个字节,在64位系统是8字节大小。指针好比一个盒子,盒子里有个东西也就是它指向的内容,内容是一个实体对象的首地址。盒子本身不能存放实体对象,就好比盒子里有张名片,通过名片你可以找到这个人,总不能把人放盒子里吧。
得有这个人然后把找到这个人的名片放盒子里。
⑤ c语言单向链表的问题
完善了一下,头结点没存数,print时要从第二个开始:
#include<stdio.h>
#include<stdlib.h>
struct
node{
int
num;
struct
node
*next;
};
//构建空的链表
void
InitList(struct
node
*&L){//修改
L
=
(struct
node*)malloc(sizeof(struct
node));
L->next
=
NULL;
L->num=0;
printf_s("InitList
sucess!");
}
//创建单链表
void
CreateList(struct
node
*&L,int
n){//修改
struct
node
*temp,*p;
L
=
(struct
node*)malloc(sizeof(struct
node));
L->next
=
NULL;
L->num=0;
temp=L;
for
(int
i
=
0;
i
<
n;
i++){
p
=
(struct
node*)malloc(sizeof(struct
node));
scanf_s("%d",
&p->num);
temp->next
=
p;
temp
=
p;
}
temp->next
=
NULL;
}
void
PrintList(struct
node
*L){
struct
node
*temp
=
L->next;//修改,头结点不使用
while
(temp
!=
NULL){
printf("%d",
temp->num);
temp
=
temp->next;
}
}
void
PrintMenu(){
printf_s("------Menu------\n");
printf_s("0
InitList\n");
printf_s("1
CreateList\n");
printf_s("2
PrintList\n");
}
void
main(){
int
n,c;
struct
node
*La;
c=1;
while(c>=0)
{
PrintMenu();
printf_s("Enter
the
command:
");
scanf_s("%d",
&c);
switch
(c){
case
0:
InitList(La);
break;
case
1:
printf_s("Enter
the
number
of
LinkList:
");
scanf_s("%d",
&n);
CreateList(La,
n);
break;
case
2:
PrintList(La);
break;
default:
printf_s("ERROR,Enter
again:
");
break;
}
}
struct
node
*te;//增加释放空间
if(La)
{
te=La->next;
free(La);
La=te;
}
system("pause");
}
⑥ C语言单链表合并
#include<stdio.h>#include<stdlib.h>structlist{intdata;structlist*next;};//两个链表融合,插入排序函数voidsort(structlist*l1,structlist*l2);//输出链表voidoutput(structlist*head);//输入链表voidinput(structlist*head,intnum);intmain(){intn;list*h1,*h2;//两个链表的头,下面四行初始化链表h1=(structlist*)malloc(sizeof(structlist));h2=(structlist*)malloc(sizeof(structlist));h1->next=NULL;h2->next=NULL;//两个链表输入printf("请输入第一个链表节点数: ");scanf("%d",&n);input(h1,n);printf("请输入第二个链表节点数: ");scanf("%d",&n);input(h2,n);//合并链表并排序sort(h1,h2);//输出合并后的链表output(h1);}voidinput(structlist*head,intnum){structlist*tmp;structlist*end;end=head;printf("请输入链表节点: ");for(inti=0;i!=num;i++){tmp=(structlist*)malloc(sizeof(structlist));scanf("%d",&tmp->data);end->next=tmp;tmp->next=NULL;end=tmp;}}voidsort(structlist*l1,structlist*l2){structlist*p1,*p2,*tmp;p1=l1;p2=l2->next;while(p1->next&&p2){if(p1->next->data>p2->data){tmp=p2->next;p2->next=p1->next;p1->next=p2;p2=tmp;}elsep1=p1->next;}if(p2)p1->next=p2;}voidoutput(structlist*head){while(head->next){printf("%d",head->next->data);head=head->next;}}⑦ C语言链表···
struct date{…}/链表结构体
p1/定义链表结构体的一个指针名插入点/
p1=(struct date *)malloc(sizeof(struct date))/分配链表内存
free(newnode)/释放节点内存
删除全部节点定义两个链表指针名p1,p2循环删除
while(p1->next!=NULL)
{p2=p1;
p1->…/p1指向下链表一节点
free(p2);
}
⑧ c语言创建链表
1、你使用了malloc函数但没有导入头文件malloc.h。
2、函数DATA *create(int n);没有申明就直接调用。
(另外main函数中DATA* head;给个初值NULL,避免野指针。)
修改以上内容,亲测可运行。
⑨ C语言链表相关
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#defineMAXSIZE100
typedefstructnode{
charname[21];
intnumber;
charsex;
structnode*next;
}linklist;
linklist*CreateList(){
charname[21]="