IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 第三章.线性表 -> 正文阅读

[数据结构与算法]第三章.线性表

数据库就是别人给你的软件,然后你通过学习别人给你的SQL语句操作数据库软件。
数据结构就是能够自己开发一个像数据库系统一样能够供别人进行使用。所以数据结构学到就是数据库底层的数据操作,也就是增删改查。

在这里插入图片描述


线性表的顺序存储实现

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

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE  100
#define ERROR -1
typedef  struct LNode *PtrToLNode;
typedef  int  Position;
typedef  int  ElementType;
struct LNode{
    ElementType  Data[MAXSIZE];
    Position  Last;
};
typedef  PtrToLNode List;
List MakeEmpty()
{
	List L;
	L = (List)malloc(sizeof(struct LNode));
	L->Last = -1;
	return L;
}
Position Find( List L, ElementType X )
{
	Position i = 0;

	while( i <= L->Last && L->Data[i]!= X )
		i++;
	if ( i > L->Last )  return -1; /* 如果没找到,返回错误信息 */
	else  return i;  /* 找到后返回的是存储位置 */
}
int Insert( List L, ElementType X, int i )
{ /* 在L的指定位序i前插入一个新元素X;位序i元素的数组位置下标是i-1 */
	Position j;

	if ( L->Last == MAXSIZE-1) {
		/* 表空间已满,不能插入 */
		printf("表满");
		return 0;
	}
	if ( i<1 || i>L->Last+2 ) {
    /* 检查插入位序的合法性:是否在1~n+1。n为当前元素个数,即Last+1 */
		printf("位序不合法");
		return 0;
	}
	for( j=L->Last; j>=i-1; j-- ) /*Last指向序列最后元素 */
		L->Data[j+1] = L->Data[j]; /* 将位序i及以后的元素顺序向后移动 */
	L->Data[i-1] = X;  /* 新元素插入第i位序,其数组下标为i-1 */
	L->Last++;       /* Last仍指向最后元素 */
	return 1;
}
int Delete( List L, int i )
{ /* 从L中删除指定位序i的元素,该元素数组下标为i-1 */
	Position j;

	if( i<1 || i>L->Last+1 ) { /* 检查空表及删除位序的合法性 */
		printf("位序%d不存在元素", i );
		return 0;
	}
	for( j=i; j<=L->Last; j++ )
		L->Data[j-1] = L->Data[j]; /*将位序i+1及以后的元素顺序向前移动*/
	L->Last--; /* Last仍指向最后元素 */
	return 1;
}
void Input(List L,int n)
{
    for(L->Last=0;L->Last<n;L->Last++)
        scanf("%d",&L->Data[L->Last]);
    L->Last--;
}
void Print(List L)
{
    int i;
    for(i=0;i<=L->Last;i++)
        printf("%4d",L->Data[i]);
    printf("\n");
}
int main()
{
    List L;
    int n,i;
    ElementType x;
    L=MakeEmpty();
    printf("input n=");
    scanf("%d",&n);
    Input(L,n);
    printf("the length of L is:%d\n",L->Last+1);
    Print(L);
    printf("input delet i=");
    scanf("%d",&i);
    Delete(L,i);
    Print(L);
    printf("input insert i=");
    scanf("%d",&i);
    printf("input insert x=");
    scanf("%d",&x);
    Insert(L,x,i);
    Print(L);
    printf("input find value x=");
    scanf("%d",&x);
    printf("the add is:%d\n",Find(L,x));
    return 0;
}

线性表的链式存储实现

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


广义表

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


多重链表

在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:50:05  更:2022-03-04 15:54:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:33:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码