链表的基本操作
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int type;
typedef struct Node
{
type info;
struct Node *next;
}node;
//建立一个头节点并将其指针返回
node *node_init()
{
node *head=(node*)malloc(sizeof(node));
head->next=NULL;
return head;
}
//打印一个链表
void node_display(node*head)
{
node*p=head->next;
if(!p){
printf("EMPTY\n");
}
else{
while(p){
printf("%5d",p->info);
p=p->next;
}
printf("\n");
}
}
//找到第n个节点并返回其指针,若n==0则返回头节点指针
node* node_find(node*head,int n)
{
int i=0;
node *p=head;
if(n<0){
printf("not\n");
return NULL;
}
else if(n==0){//第零个位置的节点:头节点
return head;
}
while(p&&i<n){//找到第i个节点的地址
p=p->next;
i++;
}
if(!p