链表
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>
typedef struct Node{
int data;
struct Node * next;
}Node;
void InsertHead(Node * S,int item);
int DeleteK(Node * S,int k);
void InsertK(Node * S,int k,int item);
int main()
{
Node head,*S;
S = &head;
InsertHead(S,1);
InsertK(S,1,2);
InsertK(S,2,3);
InsertK(S,3,4);
InsertK(S,4,5);
Node * p = S->next;
for(int i = 0;i < 5;i++)
{
printf("%d\n",p->data);
p = p->next;
}
printf("%d\n",DeleteK(S,2));
p = S->next;
for(int i = 0;i < 4;i++)
{
printf("%d\n",p->data);
p = p->next;
}
return 0;
}
void InsertHead(Node * S,int item)
{
Node * p = S->next;
Node * q = (Node*)malloc(sizeof(Node));
q->data = item;
q->next = p;
S->next = q;
}
int DeleteK(Node * S,int k)
{
Node * p = S->next,*q = S,*t;
int x;
for(int i = 1;i<k;i++)
{
q = p;
p = p->next;
}
x = p->data;
t = q->next;
q->next = p->next;
free(t);
return x;
}
void InsertK(Node * S,int k,int item)
{
Node * p = S->next;
for(int i = 1;i < k;i++)
{
p = p->next;
}
Node * q = (Node*)malloc(sizeof(Node));
q->data = item;
q->next = p->next;
p->next = q;
}