我是靠谱客的博主 无奈仙人掌,最近开发中收集的这篇文章主要介绍【数据结构】线性表——插入和删除单链表双链表顺序表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 单链表
    • 插入
      • 特殊情况
    • 删除
      • 特殊情况
  • 双链表
    • 插入
    • 删除
  • 顺序表
    • 插入

单链表

插入

图示

在这里插入图片描述

注意:1st和2nd顺序不可调换!!否则链表会断开!!

特殊情况

在头部插入节点
情况一:单链表中含有头结点

与前面在链表中间插入元素的情况相同

情况二:单链表中不含头结点,插入后要调节head指向

在这里插入图片描述在这里插入图片描述

删除

图示:

在这里插入图片描述
然后delete s;释放掉s所占空间

特殊情况

不含头结点的单链表删除头部节点
在这里插入图片描述
先移动head指针,然后delete p;释放空间


含有头结点的链表较不含头结点的链表的先进之处:
● 给链表设置头结点,可以使得在第一个数据节点之前插入新节点和删除第一个节点的操作同表中部节点的操作统一,便于写代码
● 带头结点的链表,其头指针值不随操作而改变,可以减少错误

双链表

插入

在这里插入图片描述

删除

在这里插入图片描述

顺序表

插入

例:在2号位置插入元素0
在这里插入图片描述
位置2~5的元素往后挪一位,把元素0放入2号位
元素的移动从表尾开始
在这里插入图片描述length后移
在这里插入图片描述
● 可插入下标位置p的取值范围:0 ~ length
● 当表长length等于数组长度maxSize时,不可再插入元素
● 移动元素从后往前进行

考卷上最简单使用的建立方法

int sqList[maxSize] = {1, 2, 3, ..., n};
int length = n;

(正经的) 方法

int insertElem(int sqList[], int &length, int p, int e)
{
	if( p<0 || p>length || length==maxSize)
		return 0; //判断插入位置是否合法,不合法则返回0
	for(int i=length-1; i>=p; --i)
		sqList[i+1] = sqList[i];
	sqList[p] = e;
	++length;
	return 1;
}

最后

以上就是无奈仙人掌为你收集整理的【数据结构】线性表——插入和删除单链表双链表顺序表的全部内容,希望文章能够帮你解决【数据结构】线性表——插入和删除单链表双链表顺序表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部