解题思路:
注意事项:记得每次输出后要换行
参考代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct str
{
int data;
struct str *next;
}Node;
typedef struct str * node;
node creat(int n)
{
node head=(node)malloc(sizeof(Node));
head->next=NULL;
for(int i=n;i>0;--i){
node tmp=(node)malloc(sizeof(Node));
scanf("%d",&tmp->data);
tmp->next=head->next;
head->next=tmp;
}
return head;
}
void show(node l)
{
l=l->next;
node p=l;
if(p==NULL){
printf("Link list is empty\n");
return ;
}
else{
while(p){
printf("%d ",p->data);
p=p->next;
}
putchar('\n');
}
}
void insert(int n,int m,node l)
{
node p=l;
while(--n){
p=p->next;
if(p==NULL){
printf("insert fail\n");
return ;
}
}
node tmp=(node)malloc(sizeof(Node));
tmp->data=m;
tmp->next=p->next;
p->next=tmp;
printf("insert OK\n");
}
void del(int n,node l)
{
node p=l;
while(--n){
p=p->next;
if(p==NULL){
printf("delete fail\n");
return ;
}
}
node q=p->next;
p->next=q->next;
q->next=NULL;
free(q);
printf("delete OK\n");
}
void get(int n,node l)
{
node p=l->next;
while(--n){
p=p->next;
if(p==NULL)
break;
}
if(p==NULL){
printf("get fail\n");
return ;
}
printf("%d\n",p->data);
}
int main()
{
int n;
scanf("%d",&n);
node w=creat(n);
char arr[10];
int a,b;
int m;
scanf("%d",&m);
while(m--){
scanf("%s",arr);
if(!strcmp(arr,"show")){
show(w);
}
else if(!strcmp(arr,"insert")){
scanf("%d%d",&a,&b);
insert(a,b,w);
}
else if(!strcmp(arr,"delete")){
scanf("%d",&a);
del(a,w);
}
else if(!strcmp(arr,"get")){
scanf("%d",&a);
get(a,w);
}
}
return 0;
}
0.0分
1 人评分