解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int x;
struct Node *next;
}node;
void show(node*head)
{
if(head==NULL)
{
printf("Link list is empty");
}else{
for(node*p=head;p;p=p->next)
{
printf("%d",p->x);
if(p->next)
{
printf(" ");
}
}
}
}
node *mydelete(node*head,int k)
{
node*p=head;
int m=k;
while(--m>1)
{
p=p->next;
}
if(p&&k!=1)
{
node*temp=p->next;
p->next=p->next->next;
free(temp);
printf("delete OK");
return head;
}else if(p&&k==1)
{
node*temp=p;
p=p->next;
free(temp);
printf("delete OK");
return p;
}else{
printf("delete fail");
return head;
}
}
void get(node* head,int k)
{
node*p=head;
while(--k>0)
{
p=p->next;
}
if(p)
{
printf("%d",p->x);
}else{
printf("get fail");
}
}
node *insert(node*head,int a,int e)
{
node*p=head;
int m=a;
while(--m>1)
{
p=p->next;
}
if(p&&a!=1)
{
node*q=(node*)malloc(sizeof(node));
q->x=e;
q->next=p->next;
p->next=q;
printf("insert OK");
return head;
}else if(a==1)
{
p=(node*)malloc(sizeof(node));
p->x=e;
p->next=head;
printf("insert OK");
return p;
}else{
printf("insert fail");
return head;
}
}
int main()
{
int n;
scanf("%d",&n);
int a[100];
node*head=NULL;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=n-1;i>=0;i--)
{
node*p=(node*)malloc(sizeof(node));
p->x=a[i];
p->next=NULL;
if(head)
{
node*last=head;
while(last->next)
{
last=last->next;
}
last->next=p;
}else{
head=p;
}
}
//build finished;
int word;
scanf("%d",&word);
for(int i=0;i<word;i++)
{
char s[50];
scanf("%s",s);
switch(s[0]){
case 's':
{
show(head);
printf("\n");
break;
}
case 'd':
{
int k;
scanf("%d",&k);
head=mydelete(head,k);
printf("\n");
break;
}
case 'g':
{
int k;
scanf("%d",&k);
get(head,k);
printf("\n");
break;
}
case 'i':
{
int r,j;
scanf("%d %d",&r,&j);
head=insert(head,r,j);
printf("\n");
break;
}
}
}
while(head)
{
node*temp=head;
head=head->next;
free(temp);
}
return 0;
}
0.0分
1 人评分
分糖果 (C++代码)浏览:1438 |
数组输出 (C语言代码)--此题的题目描述有问题浏览:1816 |
【亲和数】 (C语言代码)浏览:501 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:786 |
WU-判定字符位置 (C++代码)浏览:1398 |
DNA (C语言描述,数据结构)浏览:851 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:625 |
用筛法求之N内的素数。 (C语言代码)浏览:646 |
sizeof的大作用 (C语言代码)浏览:1449 |
Tom数 (C语言代码)浏览:525 |