[数据结构]顺序单链表插入

一,单链表插入操作

[cpp] view plaincopy

  1. typedef struct NODE {
  2. struct NODE *link;
  3. int value;
  4. }Node;
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #define FALSE 0
  8. #define TRUE 1
  9. int s_insert(Node **rootp,int new_value)  //root是一个指向Node的指针,所以指针root的指针类型是Node**
  10. {
  11. Node *current;
  12. Node *new;
  13. Node *previous;
  14. current = *rootp;
  15. previous = NULL;
  16. while(current != NULL && current->value < new_value)
  17. {
  18. previous = current;
  19. current = current->link;
  20. }
  21. new = (Node*)malloc(sizeof(Node));
  22. if(new == NULL)
  23. {
  24. return FALSE;
  25. }
  26. new->value = new_value;
  27. new->link = current;
  28. if(previous == NULL)
  29. {
  30. *rootp = new;
  31. }
  32. else
  33. {
  34. previous->link = new;
  35. }
  36. return TRUE;
  37. }
时间: 2024-10-23 22:27:58

[数据结构]顺序单链表插入的相关文章

C#数据结构-单链表

理论基础: 链表是用一组任意的存储单元来存储线性表中的数据元素. 如果结点的引用域只存储该结点直接后继结点的存储地址,则该链表叫单链表(Singly Linked List). 单链表由头引用H唯一确定.头引用指向单链表的第一个结点,也就是把单链表第一个结点的地址放在H中. C#实现: 1接口 引用线性表的接口IListDS<T> 2实现 首先,必须定义一个单链表的节点类.  1 public class Node<T> 2    { 3        private T data

数据结构之——单链表

今天闲来无事,就打算把大一的时候写过的数据结构重温一遍,基本上我在大一之后只在单片机上用过几次顺序表和循环队列之外再就很少使用过数据结构了. 并且乘着写一下数据结构也可以熟悉熟悉vim. 首先定义单链表节点: 1 #define DataType int 2 3 struct node{ 4 DataType data; 5 struct node *next; 6 }; 7 struct node list,*p_list; 单链表这个数据结构需要一些函数来对她操作,一般需要有这些: 1.初始

数据结构(一) 单链表的实现-JAVA

数据结构还是很重要的,就算不是那种很牛逼的,但起码得知道基础的东西,这一系列就算是复习一下以前学过的数据结构和填补自己在这一块的知识的空缺.加油.珍惜校园中自由学习的时光.按照链表.栈.队列.排序.数组.树这种顺序来学习数据结构这门课程把. -WH 一.单链表的概念 链表是最基本的数据结构,其存储的你原理图如下图所示 上面展示的是一个单链表的存储原理图,简单易懂,head为头节点,他不存放任何的数据,只是充当一个指向链表中真正存放数据的第一个节点的作用,而每个节点中都有一个next引用,指向下一

数据结构之单链表

1. 链表的特点 链表是一种非线性.非顺序的物理结构,是由若干个节点组成. 链表采用的是“见缝插针”的存储方法,不要求内存连续,靠next指针关联起来. 链表的物理存储方式为随机存储,访问方式为顺序访问. 查找节点的时间复杂度为O(n),插入.删除节点的时间复杂度为O(1). 链表适用于写操作多,读操作少的场景. 1 //单向链表节点的数据结构 2 struct SingleListNode 3 { 4 int nData;//当前节点的数据 5 Node* pNext;//指向下一个节点的指针

数据结构:单链表结构字符串(python版)

1 #!/urs/bin/env python 2 # -*- coding:utf-8 -*- 3 4 #异常类 5 class stringTypeError(TypeError): 6 pass 7 8 #节点类 9 class Node(object): 10 def __init__(self, elem, next_ = None): 11 self.elem = elem 12 self.next = next_ 13 #单链表类 14 class single_list(obje

浅谈PHP数据结构之单链表

什么是链表?(依据百度词条查询而得) 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每个元素称为结点)组成,结点能够在执行时动态生成.每个结点包含两个部分:一个是存储数据元素的数据域,还有一个是存储下一个结点地址的指针域. 经过查询资料和观摩了站点不同版本号的链表后.小弟自己尝试着写了一个PHP版本号的单链表,希望对大家理解链表有所帮助. <?php //定义结点 class Node{ public $id;//结

数据结构:单链表结构字符串(python版)添加了三个新功能

1 #!/urs/bin/env python 2 # -*- coding:utf-8 -*- 3 4 #异常类 5 class stringTypeError(TypeError): 6 pass 7 8 #节点类 9 class Node(object): 10 def __init__(self, elem, next_ = None): 11 self.elem = elem 12 self.next = next_ 13 #单链表类 14 class single_list(obje

数据结构之单链表(C++版)

#include <iostream>#include <stdlib.h>using namespace std; typedef string ElemType;typedef struct LNode{ ElemType data; //数据域 struct LNode *next; //指针域}LNode, *SLink; void InitList(SLink &L);void LocateElem(SLink L);void ListInsert(SLink &

Java数据结构之单链表

链表的组成:链表头+结点 ? ?链表头一般只存储下一个节点的引用 ? ?节点:存数据+下一个节点的引用 链表头代码: package?com.xingej.algorithm.datastructure.linkedList.singleLinkedList; /** ?*?声明一个链表的头部 ?*? ?*?从链表头的使用,联想到hadoop,spark,netty中都有上下文context ?*? ?*[email protected]?erjun?2017年12月8日?上午8:45:08 ?