单链表的按位置修改
void change_date(linklist L,int pos,datetype e)
{
if(L==NULL || L->len==0 || pos<1 || pos>L->len)
{
printf("查找失败\n");
return -1;
}
linklist p=L;
int i;
for(i=0;i<pos;i++)
{
p=p->next;
}
p->data=e;
}
单链表的按元素修改
void change_date2(linklist L,datetype key,datetype e)
{
int pos;
pos=search_data(L,key);
int i;
for(i=0;i<pos;i++)
{
p=p->next;
}
p->data=e;
}
单链表的空间释放
void free_list(linklist L)
{
while(L->next) delete_head(L);
free(L);
L = NULL;
}
头文件
#ifndef __HEAD_H__
#define __HEAD_H__
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
typedef int datetype;
typedef struct
{
union
{
int len;
datetype date;
}
struct Node*next;
}*linklist;
linklist create_head();
int delete_pos(linklist L,int pos);
int insert_pos(linklist L,int pos,datatype e);
void output(linklist L);
int insert_head(linklist L,datatype e);
linklist create_node();
int insert_rear(linklist L,datatype e);
int delete_rear(linklist L);
int delete_head(linklist L);
int search_pos(linklist L,int pos);
int search_data(linklist L,datatype key);
int delete_data(linklist L,datatype key);
void change_date(linklist L,int pos,datetype e);
void change_date2(linklist L,datetype key,datetype e);
void free_list(linklist L);
#endif
自定义文件
#include "head.h"
/*
* function: 创建头结点
* @param [ in] 无参数
* @param [out] :w
* @return 成功返回地址失败返回NULL
*/
linklist create_head()
{
//L是头结点:len next
//struct Node: 是结点结构体的类型
linklist L=(linklist)malloc(sizeof(struct Node));
if(L==NULL)
return NUL