//main.c
#include<stdio.h>
#include"linklist.h"
int main()
{
LinkList *a=create(5);
puts_(a);
return 0;
}
//linklist.h
typedef struct student{
int score;
struct student* next;
}LinkList;
LinkList *create(int n);
void change(LinkList *list,int n);
void delete(LinkList *list,int n);
void insert(LinkList *list,int n);
void puts_(const LinkList *list);
//linklist.c
#include"linklist.h"
#ifndef _LINKLIST_H_
#define _LINKLIST_H_
/*typedef struct student{
int score;
struct student* next;
}LinkList;*/
LinkList *create(int n){
LinkList *head,*node,*end;
head=(LinkList*)malloc(sizeof(LinkList));
end=head;
int i;
for(i=0;i<n;i++){
node=(LinkList*)malloc(sizeof(LinkList));
printf("请输入数据:\n");
scanf("%d",node->score);
end->next=node;
end=node;
}
end->next=0;
return head;
}
void change(LinkList *list,int n){
LinkList *t=list;
int i=0;
while(i<n&&t!=0){
t=t->next;
i++;
}
if(t!=0){
printf("请输入修改后的值:\n");
scanf("%d",&t->score);
}else
puts("节点不存在");
}
void delete(LinkList *list,int n){
LinkList *t,*in;
int i=0;
t=list;
while(t!=0&&i<n){
in=t;
t=t->next;
i++;
}
if(t!=0){
in->next=t->next;
free(t);
}else{
puts("节点不存在");
}
}
void insert(LinkList *list,int n){
LinkList *t,*in;
int i=0;
t=list;
while(t!=0&&i<n){
t=t->next;
i++;
}
if(t!=0){
in=(LinkList*)malloc(sizeof(LinkList));
puts("要插入的值");
scanf("%d",&in->score);
in->next=t->next;
t->next=in;
}else{
puts("节点不存在");
}
}
void puts_(const LinkList *list){
LinkList *t=list;
while(t!=0){
t=t->next;
printf("%-3d",t->score);
}
}
#endif
修改处见注释,供参考:
//main.c
#include<stdio.h>
#include"linklist.h"
int main()
{
LinkList *a=create(5);
puts_(a);
return 0;
}
//linklist.h
typedef struct student{
int score;
struct student* next;
}LinkList;
LinkList *create(int n);
void change(LinkList *list,int n);
void Delete(LinkList *list,int n);//delete 是关键字,所以 d 改大写 Delete
void insert(LinkList *list,int n);
void puts_(const LinkList *list);
//linklist.c
#include"linklist.h"
#ifndef _LINKLIST_H_
#define _LINKLIST_H_
/*typedef struct student{
int score;
struct student* next;
}LinkList;*/
LinkList *create(int n){
LinkList *head,*node,*end;
head=(LinkList*)malloc(sizeof(LinkList));
head->next = NULL; //修改
end=head;
int i;
for(i=0;i<n;i++){
node=(LinkList*)malloc(sizeof(LinkList));
node->next = NULL; //修改
printf("请输入数据:\n");
scanf("%d",&node->score); //scanf("%d",node->score);修改
end->next=node;
end=node;
}
end->next=0;
return head;
}
void change(LinkList *list,int n){
LinkList *t=list;
int i=0;
while(i<n&&t!=0){
t=t->next;
i++;
}
if(t!=0){
printf("请输入修改后的值:\n");
scanf("%d",&t->score);
}else
puts("节点不存在");
}
void Delete(LinkList *list,int n){//delete 是关键字,所以 d 改大写 Delete
LinkList *t,*in;
int i=0;
t=list;
while(t!=0&&i<n){
in=t;
t=t->next;
i++;
}
if(t!=0){
in->next=t->next;
free(t);
}else{
puts("节点不存在");
}
}
void insert(LinkList *list,int n){
LinkList *t,*in;
int i=0;
t=list;
while(t!=0&&i<n){
t=t->next;
i++;
}
if(t!=0){
in=(LinkList*)malloc(sizeof(LinkList));
puts("要插入的值");
scanf("%d",&in->score);
in->next=t->next;
t->next=in;
}else{
puts("节点不存在");
}
}
void puts_(const LinkList *list){
const LinkList *t=list;
while(t->next!=0){//while(t!=0) 修改
t=t->next;
printf("%-3d",t->score);
}
}
#endif