#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node{
int data;
struct node * next;
}Node,* LinkList;
int deleteNode(LinkList head,int i){
int j=0;
LinkList pc=head;
while (pc->next && j<i-1){
pc=pc->next;
j++;
}
if (!pc->next || j>i-1 ) return -1;
//head->next= head->next->next;
LinkList p=pc->next;
pc->next=p->next;
free(p);
return 0;
}
int addNode(LinkList head,int i,int e){
LinkList p=head;
int j=0;
while (p->next && j<i-1){
p=p->next;
j++;
}
if (!p->next || j>i-1) return -1;
LinkList newNode = (LinkList)malloc(sizeof(node));
newNode->data=e;
newNode->next=p->next;
p->next=newNode;
return 0;
}
int main(void) {
LinkList head = (LinkList)malloc(sizeof(node));
LinkList s = (LinkList)malloc(sizeof(node)),s1,p;
head->next=s;
int x=0,y;
for (;x<5;x++){
scanf("%d",&y);
s->data = y;
s1=(LinkList)malloc(sizeof(node));
s->next=s1;
s=s1;
}
s->next=NULL;
deleteNode(head,2);
addNode(head,3,10000);
p=head->next;
while (p->next){
printf("%d\n",p->data);
p=p->next;
}
}
简单的c语言链表的实现
最新推荐文章于 2024-01-17 16:31:52 发布