c语言链表头插法和尾插法,c语言链表,头插法和尾插法

这篇博客介绍了C语言中如何实现链表的头插法和尾插法。通过`head_insert`函数实现头插法,在链表头部插入元素;通过`nial_insert`函数实现尾插法,在链表末尾插入元素。同时,还提供了删除元素的`dele`函数和显示链表元素的`show`函数。在主函数中展示了插入和删除操作的示例。
摘要由CSDN通过智能技术生成

c语言链表,头插法和尾插法

2018年10月12日

| 萬仟网IT编程

 | a48e1d17a2b0511faa7da7240b1971f6.png我要评论

#include

#include

#include

typedef struct stdata{

int e;

}data;

typedef struct s

#include

#include

#include

typedef struct stdata{

int e;

}data;

typedef struct stlink{

data data;

struct stlink* next;

}link;

struct link* create(){

link* head = (link*)malloc(sizeof(link));

memset(&head->data,0,sizeof(link));

head->next = null;

return head;

}

void head_insert(link* head,data e){

link *ptemp,*pnew;

if (head->data.e != 0){

ptemp = head->next;

pnew = (link*)malloc(sizeof(link));

memcpy(&pnew->data,&e,sizeof(data));

pnew->next = ptemp;

head->next = pnew;

}else{

memcpy(&head->data,&e,sizeof(data));

}

}

void nial_insert(link* head,data e){

link *ptemp,*pnew;

ptemp = head;

if (head->data.e != 0){

pnew = (link*)malloc(sizeof(link));

memcpy(&pnew->data,&e,sizeof(data));

while(ptemp->next != null)

ptemp = ptemp->next;

ptemp->next = pnew;

pnew->next = null;

}

else{

memcpy(&head->data,&e,sizeof(data));

}

}

void dele(link* head,data e){

link *pbefore = head;

link *ptemp = head;

while(ptemp->next != null){

if (ptemp->data.e == e.e)

{

link *pdel = ptemp;

pbefore->next = ptemp->next;

pdel->next = null;

free(pdel);

return;

}else{

pbefore = ptemp;

ptemp = ptemp->next;

}

}

if (ptemp->data.e == e.e)

{

link *pdel = ptemp;

pbefore->next = ptemp->next;

pdel->next = null;

free(pdel);

}

}

void show(link* head){

link *ptemp = head;

while(ptemp->next != null){

printf("%d \n",ptemp->data.e);

ptemp = ptemp->next;

}

printf("%d \n",ptemp->data.e);

}

int main()

{

link *head = create();

data e1={1001},e2={1002},e3={1003},e4={1004};

//head_insert(head,e1);

//head_insert(head,e2);

//head_insert(head,e3);

//head_insert(head,e4);

nial_insert(head,e1);

nial_insert(head,e2);

nial_insert(head,e3);

nial_insert(head,e4);

show(head);

printf("dele------------\n");

dele(head,e2);

show(head);

return 0;

}

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

相关文章:

类定义时的静态成员只是声明,静态成员的定义和初始化要在类之外完成c++的static关键字可修饰类成员变量/方法,表示变量/方法不从属于特定对象,而是属于类的。...

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg

今天更新一个C语言的循环,简单点就是就是我们平时在使用电脑时不停的刷新网页,生活中每天都要吃饭等等就是循环,而编程中也有不断循环的过程,或者遇到符合...

const 在 的右边:不可以改指针的指向,可以用指针改里面的值 int const p; const在 的左边:可以改指针的指向,不可以用指针改里...

题目链接:HDU-2222 或 Vjudge 简单说明: 题意是按行给出n个串,再给一个文本,问在文本中出现了串中的几个。题目没强调串是互不相同的哦...

一、异常处理

1. 异常的概念

程序在运行过程中可能产生异常 异常(Exception)与Bug的区别

异常时程序运行时可预料的执行分...

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg

1:直接插入排序基本思想:在插入第i(i>1)个记录时,前面的i-1个记录已经好序2:例子r0 1...

架构设计是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中去体会。这篇文章主要介绍面向对象OO、面向方面AOP和面向服务S...

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg

c++的继承作为它的一个特性,必须要做到深入了解,对于c++继承方式,我们之前讲过,有单继承,多继承,菱形继承,虚拟继承,菱形虚拟继承。

这次我们来深入探究一...

前言 第一级是直接调用 分配空间, 调用 释放空间, 第二级三就是建立一个内存池, 小于128字节的申请都直接在内存池申请, 不直接调用 和`fre...

网友评论

387afa1e91d68b43eca6c11dc07bf577.gif

验证码:

263227.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值