静态链表的插入和删除

小结:

1、线性链表、静态链表

《数据结构》严

0		1		2		3		4		5		6		7		8
		ZHAO    QIAN    SUN     LI      ZHOU     WU     ZHENG    WANG
1		2		3		4		5		6		7		8		0

第一行为顺序号,可作为指针值
第二行为节点值
第三行指针值

初始状态
0->1
1->2
...
7->8
8->0

插入SHI,在LI之后
注意2点:插入式放在末尾

“插入SHI”:第一步,指针值没有改变
0		1		2		3		4		5		6		7		8		9
		ZHAO    QIAN    SUN     LI      ZHOU     WU     ZHENG    WANG    SHI
“在LI之后”:第二步,指针值改变
0		1		2		3		4		5		6		7		8		9
		ZHAO    QIAN    SUN     LI      ZHOU     WU     ZHENG    WANG    SHI
		2		3		4		9		6		 7		8			0		5

继续,删除ZHENG
注意:只改变指针值
0		1		2		3		4		5		6		7		8		9
		ZHAO    QIAN    SUN     LI      ZHOU     WU     ZHENG    WANG    SHI
		2		3		4		9		6		 8		8			0		5

  

原文地址:https://www.cnblogs.com/yuanjiangw/p/10523073.html

时间: 2024-10-19 05:10:32

静态链表的插入和删除的相关文章

数据结构Java实现03----单向链表的插入和删除

数据结构Java实现03----单向链表的插入和删除 文本主要内容: 链表结构 单链表代码实现 单链表的效率分析 一.链表结构:            概念: 链式存储结构是基于指针实现的.我们把一个数据元素和一个指针称为结点.   数据域:存数数据元素信息的域. 指针域:存储直接后继位置的域. 链式存储结构是用指针把相互直接关联的结点(即直接前驱结点或直接后继结点)链接起来.链式存储结构的线性表称为链表. 链表类型: 根据链表的构造方式的不同可以分为: 单向链表 单向循环链表 双向循环链表 二

简直offer之链表的插入和删除

在插入和删除链表的时候一定要注意不要让链表断了,另外要特别注意对头结点的单独考虑 参考剑指offer上第50页删除给定值的结点的代码.得知,要删除一个节点必须知道该节点的前一个节点.书上的代码使用pNode.next 和pNode.next.value来判断的 下面把代码附上,有个问题 public static ListNode deleteNode(ListNode head,int value){ if(head==null){ return null; } ListNode toBeDe

单链表实现“插入”和“删除”操作

在单链表中,又如何实现"插入"和"删除"操作呢? 插入操作: 假设我们要在线性表的两个数据元素a和b之间插入一个数据元素x,已知p为其单链表存储结构中指向结点a的指针.为插入数据元素x,首先要生成一个数据域为x的结点,然后插入在单链表中.根据插入操作的逻辑定义,还需修改结点a中的指针域,令其指向结点x,而结点x中的指针域应该指向b结点,从而实现3个元素a,b和x之间逻辑关系的变化. 假设s为指向结点x的指针.则上述指针修改用语句描述即为: s->next=p-

链表的插入、删除

结构体: 1 typedef struct Student{ 2 int m_val; 3 struct Student* m_next; 4 }NODE,*pNODE; 链表的插入: 1 //尾部插入 2 void linkInitTail(pNODE* pphead) 3 { 4 int val; 5 pNODE pNew,pTail; 6 while(scanf("%d",&val) == 1) 7 { 8 pNew = (pNODE)calloc(1,sizeof(NO

面试之路(10)-BAT面试之java实现单链表的插入和删除

链表的结构: 链表在空间是不连续的,包括: 数据域(用于存储数据) 指针域(用于存储下一个node的指针) 单项链表的代码实现: 节点类 构造函数 数据域的get,set方法 指针域的get,set方法 代码: public class Node { Object element; //数据域 Node next; //指针域 //构造方法 public Node(Object obj, Node nextval) { this.element = obj; this.next = nextva

Partition List(链表的插入和删除操作,找前驱节点)

Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. You should preserve the original relative order of the nodes in each of the two partitions. For example,Given 1->4->3->2

C++链表的插入与删除

#include<iostream>#include<limits>using namespace std;class Date{public: Date ():date(1){} Date(int number):date(number){} virtual ~Date(){} int GetDate()const {return date;} virtual void print() const = 0; private: int date;};class Book:publi

单链表的插入和删除

1 #define OKO 1 2 #define ERROR 0 3 typedef struct Lnode{ 4 ElemType data;//数据域 5 struct Lnode *next; //指针域 6 }Lnode,*Linklist; 7 Lnode *LocateElem_L(Linklist L,Elemtype e){ 8 //在链表中查找值为e的数据元素 9 Lnode *p; 10 p=L->next; 11 while(p&&p->data!=e

第二章:3.线性表---静态链表的表示和实现

前言: 由于一些高级程序设计语言中,并没有 "指针" 类型,因此上一节中用指针来描述的单链表不能被实现,这时候我们就会使用另一种形式链表:静态链表. 目录: 1.线性表的链式表示和实现 1.1线性链表 单链表(指针型线性链表) 静态链表 1.2循环链表 1.3双向链表 正文: 线性表的静态单链表存储结构: #define MAXSIZE 100; //链表的最大长度 typedef   struct{ ElemType  data; int  cur; }component, SLin