c语言链表,头插法和尾插法
2018年10月12日
| 萬仟网IT编程
| 我要评论
#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关键字可修饰类成员变量/方法,表示变量/方法不从属于特定对象,而是属于类的。...
今天更新一个C语言的循环,简单点就是就是我们平时在使用电脑时不停的刷新网页,生活中每天都要吃饭等等就是循环,而编程中也有不断循环的过程,或者遇到符合...
const 在 的右边:不可以改指针的指向,可以用指针改里面的值 int const p; const在 的左边:可以改指针的指向,不可以用指针改里...
题目链接:HDU-2222 或 Vjudge 简单说明: 题意是按行给出n个串,再给一个文本,问在文本中出现了串中的几个。题目没强调串是互不相同的哦...
一、异常处理
1. 异常的概念
程序在运行过程中可能产生异常 异常(Exception)与Bug的区别
异常时程序运行时可预料的执行分...
1:直接插入排序基本思想:在插入第i(i>1)个记录时,前面的i-1个记录已经好序2:例子r0 1...
架构设计是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中去体会。这篇文章主要介绍面向对象OO、面向方面AOP和面向服务S...
c++的继承作为它的一个特性,必须要做到深入了解,对于c++继承方式,我们之前讲过,有单继承,多继承,菱形继承,虚拟继承,菱形虚拟继承。
这次我们来深入探究一...
前言 第一级是直接调用 分配空间, 调用 释放空间, 第二级三就是建立一个内存池, 小于128字节的申请都直接在内存池申请, 不直接调用 和`fre...
网友评论
验证码: