#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node* next;
}Node;
//打印
void printlist(Node* headnode){
Node* pmove=headnode->next;
while(pmove!=NULL){
printf("%d\t",pmove->data);
pmove=pmove->next;
}
printf("\n");
}
//长度
int length(Node* headnode){
int len=0;
Node* pmove=headnode->next;
while(pmove){
pmove=pmove->next;
len++;
}
return len;
}
//初始化
Node* createlist(){
Node* headnode=(Node*)malloc(sizeof(Node));
headnode->next=NULL;
return headnode;
}
//创建节点
Node* createnode(int data){
Node* node=(Node*)malloc(sizeof(Node));
node->data=data;
return node;
}
//头插法
void insert(Node* headnode,int data){
Node* newnode=createnode(data);
newnode->data=data;
newnode->next=headnode->next;
headnode->next=newnode;
}
//指定item删除
int deletedata(Node* headnode,int posdata){
Node* posnode=headnode->next;
Node* frontposnode=headnode;
if(posnode==NULL) return -1;
while(posnode->data!=posdata){
frontposnode=posnode;
posnode=frontposnode->next;
if(posnode==NULL) return -1;
}
frontposnode->next=posnode->next;
free(posnode);
return 1;
}
int main(){
Node* linklist=createlist();
insert(linklist,1);
insert(linklist,2);
insert(linklist,3);
insert(linklist,4);
printlist(linklist);
deletedata(linklist,2);
printlist(linklist);
int len=length(linklist);
printf("%d",len);
return 0;
}
链表代码(C)
最新推荐文章于 2024-07-26 11:13:55 发布