大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。
如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!!
Good better best, never let it rest, until good is better, and better best.
近期会把自己本科阶段的一些课程设计、实验报告等分享出来,供大家参考,希望对大家有帮助。
持续更新。。。。。。。
线性表的顺序表示及插入、删除操作
1) 数据输入(输入哪些数据、个数、类型、来源、输入方式)
定义线性表结构体;
输入线性表的元素;
整型(int);
键盘输入。
2) 数据存储(输入数据在内存中的存储)
以数组方式存储,存储在ElemType Elements[MAX_LENGTH]中;
3) 数据处理(说明处理步骤。若不是非常简单,需要绘制流程图)
1、定义结构体List,初始化Eletype[]为零;
2、遍历线性表并输出在屏幕上;
3、完成插入删除操作;
4、插入一个元素.Length++;删除一个元素.length–;
5、输出插入删除后的线性表在桌面上。
4) 数据输出(贴图:程序运行结果截图。图幅大小适当,不能太大)
头文件
#ifndef _LINEARLIST_H_
#define _LINEARLIST_H_
//
// 在此处包含 C 标准库头文件
//
#include <stdio.h>
//
// 在此处包含其他头文件
//
//
// 在此处定义数据结构
//
#define MAX_LENGTH 20 // 线性表的最大长度
typedef int ElemType; // 线性表中元素的类型
typedef struct {
ElemType Elements[MAX_LENGTH]; // 使用数组存储线性表中的元素,线性表的最大长度即为数组长度。
int nLength; // 线性表的实际长度,即线性表中元素的个数。
}SqList;
//
// 在此处声明函数
//
int InsertAfter(SqList* pList, ElemType Elem, int i);
int Delete(SqList* pList, int i, ElemType* pElem);
#endif /* _LINEARLIST_H_ */
.cpp文件
#include "插入删除.h"
#include<iostream>
using namespace std;
int main(int argc, char* argv[])
{
SqList List;
int i;
ElemType Elem;
//
// 初始化线性表
//
List.nLength = 8;
for (i = 0; i < List.nLength; i++)
{
List.Elements[i] = i;
cout << List.Elements[i]<<" ";
}
cout << endl;
//
// 在第 i 个元素之后插入元素
//
InsertAfter(&List, 33, 5);
InsertAfter(&List, 45, 15); // 插入位置非法。插入失败。
for (i = 0; i < List.nLength; i++)
{
cout << List.Elements[i]<<" ";
}
cout << endl;
//
// 删除第 i 个元素
//
Delete(&List, 6, &Elem);
Delete(&List, 15, &Elem); // 删除位置非法。删除失败。
for (i = 0; i < List.nLength; i++)
{
cout << List.Elements[i]<<" ";
}
cout << endl;
system("pause");
return 0;
}
/*
功能:
在第 i 个元素之后插入一个元素。
参数:
pList -- 线性表
Elem -- 插入的元素
i -- 指定位置。从 1 开始计数。
返回值:
如果插入成功返回 1
如果插入失败返回 0
*/
int InsertAfter(SqList* pList, ElemType Elem, int i)
{
int nIndex; // 用于移动元素的游标
//
// TODO: 在此添加代码
//
if (i <= 0 || i > pList->nLength)
{
cout << "插入非法" << endl;
return 0;
}
else
{
nIndex = pList->nLength;
for (nIndex; nIndex >= i; nIndex--)
{
pList->Elements[nIndex + 1] = pList->Elements[nIndex];
}
pList->Elements[i] = Elem;
pList->nLength++;
cout << "插入成功" << endl;
return 1;
}
return 0;
}
/*
功能:
删除第 i 个元素。
参数:
pList -- 线性表
i -- 删除元素的位置。从 1 开始计数。
pElem -- 返回被删除元素的值。
返回值:
如果删除成功返回 1
如果删除失败返回 0
*/
int Delete(SqList* pList, int i, ElemType* pElem)
{
int nIndex; // 用于移动元素的游标
//
// TODO: 在此添加代码
//
if (i <= 0 || i > pList->nLength)
{
cout << "删除非法" << endl;
return 0;
}
else
{
nIndex = i+1;
for (nIndex; nIndex<=pList->nLength; nIndex++)
{
pList->Elements[nIndex -1] = pList->Elements[nIndex];
}
pElem[0] = pList->Elements[i];
cout <<"删除的元素为:"<< pElem[0] << endl;
pList->nLength--;
cout << "删除成功" << endl;
return 1;
}
return 0;
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_43598687/article/details/123006131
内容来源于网络,如有侵权,请联系作者删除!