链表的创建
Node *createList()
{
Node *head=(Node *)malloce(sizeof(Node)):
if(NULLhead)
exit(-1);
return head;
}
链表的插入 一般选用头插法
void insertList(Node *head,int data)
{
Node *cur=(Node *)malloc(sizeof(Node));
cur->data=XXX;
cur->next=head->next;
head->next=cur;
}
链表的遍历
void travelList(Node *head)
{
head=head->next;
while(head)
{
printf("%d\n",head->data);
head=head->next;
}
}
链表的查找
Node *searchList(Node *head,int find)
{
head=head->next;
while(head)
{
if(head->datafind)
break;
head=head->next;
}
return head;
}
链表的删除 以及优化
void deleteList(Node *head,Node *pfind)
{
//普通版本会导致大量的版本 下面写的为优化版本
if(pfind->next==NULL)
{
while(head->next!=pfind)
head=head->next;
head->next=pfind->next;
}
else
{
pfind->data=pfind->next->data;
Node *t=pfind->Next;
find->next=t->next;
free(t);
}
}

链表的排序 (交换数据)

int lenList(void *head)
{
int coun=0;
head=head->next;
while(head)
{
count++;
head=head->next;
}

return count;
}
void popsortList(Node *head)
{
int len=lenList(head);
Node *q,*p;
for(int i=0;i<len-1;i++)
{
p=head->next;
q=p->next;
for(itn j=0;j<len-i-1;len++)
{
if(p->data>q->data)
{
p->data=p->data^q->data;
q->data=p->data^q->data;
p->data=p->data^q->data;
}
p=p->next;
q=q->next;
}
}
}
链表的排序 (交换指针)
void popSortList(Node *head)
{
Node *p,*q,*pre;
int len=lenList(head);
for(int i=0;i<len-1;i++)
{
pre=head;
p=head->next;
q=p->next; //这个是冒泡
for(int j=0;j<len-1-i;j++)
{
if(p->data>q->data)
{
pre->next=q;
p->next=q->next;
q->next=p;
pre=q;
q=p->next;
continue;
}
pre=pre->next;
p=p->next;
q=q->next;
}
}
}
链表的删除 和 翻转 在下一篇

链表操作eeeeeeeeee相关推荐

  1. 算法之递归(3)- 链表操作

    算法之递归(3)- 链表操作 递归(2)尝试了一个单链表的遍历,同时又分析了如何添加自己的操作,是在递归调用之前,还是在递归调用之后. 今天,打算将问题深入一下,即添加相应的操作在递归的过程中. (免 ...

  2. Java数据结构 利用双栈实现链表操作

    利用双栈实现链表操作 class CQueue {private int count;private ListNode head;private ListNode tail;public CQueue ...

  3. 【Linux 内核 内存管理】RCU 机制 ④ ( RCU 模式下更新链表项 list_replace_rcu 函数 | 链表操作时使用 smp_wmb() 函数保证代码执行顺序 )

    文章目录 一.RCU 模式下更新链表项 list_replace_rcu 函数 二.链表操作时使用 smp_wmb() 函数保证代码执行顺序 一.RCU 模式下更新链表项 list_replace_r ...

  4. Java单向链表操作详解

    /* 先定义一个Node类用来存储节点的值域和指针域 * 即当前节点中的值和后面节点的方法 * 在C中就是相当与定义一个结构体类型一个数据域和指针域的方法 */ class LNode{//这个写法已 ...

  5. 【数据结构-线性表】顺序表和链表(几种链表操作技巧+几种链表形式)

    链表的操作 链表中的插入(头插) void *insertNode(ListNode *head, ListNode *node) {node->next = head;head = node; ...

  6. 链表操作---面向过程--到---面型对象---到模板类

    设计一个链表操作,从分设计到实现分别从3个step进行  (1)面向过程的程序设计---结构体+函数 /* 链表操作-----step1-----用结构体实现链表操作链表设计----需求分析 1.创建 ...

  7. 82. 删除排序链表中的重复元素 II(链表操作)

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1-&g ...

  8. 单链表操作实现getelem_c语言实现--带头结点单链表操作

    可能是顺序表研究的细致了一点,单链表操作一下子就实现了.这里先实现带头结点的单链表操作. 大概有以下知识点. 1;结点:结点就是单链表中研究的数据元素,结点中存储数据的部分称为数据域,存储直接后继地址 ...

  9. linux 内核的链表操作(好文不得不转)

    以下全部来自于http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/index.html 无任何个人意见. 本文详细分析了 2.6.x 内 ...

最新文章

  1. java实现系统多级文件夹复制
  2. 阿里云专家穆轩的《杭州九年程序员之“修炼”手册》
  3. OC-封装、继承、多态
  4. [Deprecated( please use panBy and panTo APIs )]
  5. Linux的用户和组管理
  6. javascript学习笔记(十九) 节点的操作
  7. 导体、良导体、超导体与半导体
  8. eclipse中怎么复制错误提示
  9. 鼎捷软件易飞9.0ERP操作手册
  10. PCB文件导入HFSS中仿真
  11. 判断推理——逻辑判断
  12. 稻盛和夫:我管理的秘诀就是12条准则
  13. 怎么让计算机打开就是d盘,电脑怎样设置启动盘符为D盘-win7启动盘,win7如何选择启动盘...
  14. hihocoder 1378(有向图求最小割集)
  15. java 回归分析_机器学习的回归是什么
  16. Android-jni(10)-jni调用java父类方法
  17. 液晶屏及液晶模组英文行业术语
  18. oracle create bigfile tablespace,create bigfile tablespace
  19. STM32+ESP8266使用MQTTAT固件连接云
  20. 【Java基础】手把手教你用Java制作飞翔的小鸟

热门文章

  1. 微信小程序java服务_微信小程序访问webService(Java)
  2. 2020,AI创业与投资进入“深水区”
  3. python初始画笔_Python自带Turtle画笔的原理
  4. 程序员.恋曲.人生(3)
  5. Matlab画带箭头的图
  6. 选择性合并、等增益、最大比值
  7. 从“人工桌面”到“原神”,窥探国产游戏的崛起
  8. K-means均值聚类算法python代码实现
  9. 江南大学大作业答案 计算机网络,江南大学大作业答案 计算机网络
  10. 读书笔记:软件工程(4) - 软件过程模型:瀑布模型