当前位置: 首页> 文旅> 酒店 > 农业技术推广网站_微信开发平台官网_网络营销毕业论文范文_搜索推广平台有哪些

农业技术推广网站_微信开发平台官网_网络营销毕业论文范文_搜索推广平台有哪些

时间:2025/7/12 5:34:44来源:https://blog.csdn.net/2501_90172633/article/details/145503198 浏览次数:0次
农业技术推广网站_微信开发平台官网_网络营销毕业论文范文_搜索推广平台有哪些

单向链表 = 数据域 + 指针域 以结构体的形式实现

typedef struct node{Data_type data;struct node *pnext;
}Link_node;

创建有头链表表头

Link_node *create_link()
{Link_node *pnode = malloc(sizeof(Link_node));if(NULL == pnode){return NULL;}pnode -> pnext = NULL;return pnode;	
}

头插

int insert_head_link(Link_node *phead, Data_type data)
{Link_node *pnode = malloc(sizeof(Link_node));if(NULL == pnode){printf("fail malloc");return -1;}pnode -> data = data;pnode -> pnext = phead -> pnext;phead -> pnext = pnode;return 0;
}

尾插

int insert_tail_link(Link_node *phead,Data_type data)
{Link_node *p = NULL;Link_node *pnode = malloc(sizeof(Link_node));if(NULL == pnode){return -1;}pnode -> data = data;pnode -> pnext = NULL;p = phead;while(p->pnext != NULL){p = p->pnext;}p -> pnext = pnode;return 0;
}

头删

void delete_head_link(Link_node *phead)
{if(NULL == phead -> pnext){return;}Link_node *p = phead -> pnext;//p = p->pnext;phead -> pnext = p->pnext;free(p);
}

尾删

void delete_tail_link(Link_node *phead)
{	if(NULL == phead){return;}Link_node *p_pre = phead -> pnext;Link_node *p_del = p_pre-> pnext;while(NULL != p_del->pnext){p_pre = p_pre -> pnext;p_del = p_del -> pnext;}p_pre->pnext = NULL;free(p_del);
}

删除指定节点

void dele_appoint_link(Link_node *phead, int i)
{Link_node *p = phead;Link_node *p_del = phead -> pnext;int j = 1;while(i != j){p = p -> pnext;p_del = p_del -> pnext;++j;}p -> pnext = p -> pnext -> pnext;free(p_del);
}

倒序链表

void reverse_link(Link_node *phead)
{Link_node *p_temp = phead -> pnext;phead -> pnext = NULL;Link_node *p_insert = NULL;while(p_temp != NULL){p_insert = p_temp;p_temp = p_temp -> pnext;p_insert -> pnext = phead -> pnext;phead -> pnext = p_insert;}
}

单向链表的插入排序

void insert_sort_link(Link_node *phead)
{if(NULL == phead){return;}Link_node *p_temp = phead -> pnext -> pnext;phead -> pnext -> pnext = NULL;Link_node *p_insert = NULL;Link_node *p = NULL;while(p_temp != NULL){p_insert = p_temp;p_temp = p_temp -> pnext;p = phead;while(p -> pnext != NULL && p -> pnext->data < p_insert -> data){p = p -> pnext;}p_insert -> pnext = p -> pnext;p -> pnext = p_insert;}
}

销毁链表

void destory_link(Link_node *phead)
{//Link_node *p_current = phead->pnext;//Link_node *p_next;//Link_node *p = phead -> pnext;if(NULL == phead->pnext){printf("is Only\n");return;}while(phead->pnext != NULL){delete_head_link(phead);}free(phead);
}

查找中间节点(快慢指针)

Link_node *find_mid_link(Link_node *phead)
{if(NULL == phead){return NULL;}Link_node *p_fast = phead;Link_node *p_low = phead;while(p_fast != NULL){p_low = p_low -> pnext;p_fast = (p_fast -> pnext) -> pnext;}return p_low;
}

单向链表的遍历

void linkForeach(Link_node *phead)
{Link_node *p = phead -> pnext;for(p;p != NULL;p = p ->pnext){printf("%d\n",p->data);}
}

查找链表内容

Link_node *searchForlink(Link_node *phead,Data_type data_dest)
{Link_node *p = phead -> pnext;for(p;p != NULL;p = p ->pnext){if(data_dest == p->data){printf("Found %d\n",p -> data);return p;}}if(NULL == p){printf("Not Found\n");}return NULL;
}

根据查找情况修改内容

int modify_link(Link_node *phead,Data_type data_old,Data_type data_new)
{Link_node *pnode = searchForlink(phead, data_old);if(NULL != pnode){pnode -> data = data_new;return 0;}return -1;
}

关键字:农业技术推广网站_微信开发平台官网_网络营销毕业论文范文_搜索推广平台有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: