33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h> /*srand*/
#include<malloc.h>
typedef struct node{
int data;
struct node *next;
}SLink;
int Init_slink(SLink *L)
{
L = (SLink*)malloc(sizeof(SLink));
L->next = NULL;
return 1;
}
int Insert_slink(SLink *L,int i,int x)
{
int j=0;
SLink *p=L;
SLink *s;
if(i<0)
return 0;
while(p!=NULL&&j<i-1){
p=p->next;
j++;
}
if(p==NULL)
return 0;
else{
s = (SLink*)malloc(sizeof(SLink));
s->data = x;
s->next = p->next;
p->next = s;
}
return 1;
}
void Display_slink(SLink *L) /*return void */
{
SLink *p;
p = L->next;
while(p!=NULL){
printf("%5d",p->data);
p=p->next;
}
putchar(10); /* '\n' */
}
int main()
{
int i,a[10];
//int e;
SLink L;
Init_slink(&L);
srand((unsigned)time(NULL));
printf("准备的数据为:\n");
for(i=1;i<=10;i++){
a[i-1]=10+rand()%(100-10+1);
printf("%5d",a[i-1]);
}
printf("\n");
printf("向链表中插5个数据为:\n");
for(i=1;i<=5;i++){
//向单链表插入数据
Insert_slink(&L,i,a[i-1]);
}
Display_slink(&L);
return 0;
}
代码没有多大的逻辑问题,有些警告我已经去掉;建议对比代码看一下