赞
踩
1、熟悉将算法转换为程序代码的过程。
2、了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的c语言描述方法。
3、熟练掌握顺序表的基本运算:查找、插入、删除等,掌握顺序表的随机存取特性。
4、了解线性表的链式存储结构,熟练掌握线性表的链式存储结构的C语言或C++语言的描述方法。
5、熟练掌握线性链表(单链表)的基本运算:查找、插入、删除等,能在实际应用中灵活选择适当的链表结构。
在本次实验中,首先程序自己建立一个空的头结点,通过菜单的功能选择“添加表的数据”可自由添加链表的节点数及元素值。在菜单选择中,有“添加链数据”,“插入链表数据”,“删除链表数据”,“查找链表数据”和“显示链表数据”功能,选择不能的功能选择就能实现不同的操作。其中“添加链表数据”可反复批量输入链表数据。
#include <iostream> using namespace std; #define MAXSIZE 10 //顺序表的最大长度 typedef int ElemType; //别名int类型 typedef struct list { ElemType elem[MAXSIZE]; //int型数组 int length; //顺序表长度 }Sqlist; //顺序表类型 //创建顺序表, //输入一组整型元素序列,建立一个顺序表,引用类型L,引用已经建立好的顺序表 void CreateList(Sqlist &L) { int i; cout << "请输入顺序表长度:"; cin >> L.length; cout << "请输入顺序表元素:"; for(i=0; i<L.length; i++) cin >> L.elem[i]; } //输出顺序表 void PrintList(Sqlist &L) { int i; cout << "顺序表所有元素有:"; for(i=0; i<L.length; i++) cout << L.elem[i] << " "; cout << endl << "--------------------------------" << endl; } //在顺序表的第i个位置插入一个元素x void InsertList(Sqlist &L, int i, ElemType x) { int j; for(j=L.length-1; j>=i-1; j--) //先移动再插入 L.elem[j+1]= L.elem[j]; //从前往后赋值,即插入位置之后的元素后移一个单位 L.elem[i-1]= x; //i位置插入元素 ++L.length; //顺序表长度加1 } //删除顺序表中第i个元素 void DeleteList(Sqlist &L, int i) { int j; for(j=i; j<=L.length; j++) L.elem[j-1]= L.elem[j]; //从后往前赋值,被删除之后的元素依次向前移 --L.length; //顺序表长度减1 } int main() { Sqlist li; //空表 CreateList(li); PrintList(li); DeleteList(li, 1); //删除第一个元素 PrintList(li); InsertList(li, 2, 9); //在第2个位置插入9 PrintList(li); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。