顺序表的基本操作
来源:互联网 发布:恒生直销软件 编辑:程序博客网 时间:2024/06/06 14:10
实验一 线性表的基本操作的实现与应用
一、【实验目的】
掌握线性表的插入与删除等基本运算
掌握单链表的插入与删除等基本运算
二、【实验内容】
1、 调试顺序表、单链表的基本运算算法。
2、 有一个单链表的第一个节点指针为head,编程实现将该单链表逆置,即最后一个节点变成第一个节点,原来倒数第二个节点变成第二个节点,如此等等,在逆置中不能建立新的单链表。
3、 编写程序,将若干整数从键盘输入,以单链表形式存储起来,然后计算单链表中结点的个数(其中指针P指向该链表的第一个结点)。
键盘输入若干个整数,按输入数据逆序建立一个带头结点的单链表。
#include <iostream>#include <stdio.h>#define MAXSIZE 100/*顺序表的容量*/using namespace std;typedef char ElemType;typedef struct{ElemType data[MAXSIZE];/*存放顺序表的元素*/int length; /*顺序表的实际长度*/} SqList;void InitList(SqList &sq)/*初始化线性表*/{sq.length=0;}int GetLength(SqList sq)/*求线性表长度*/{ return sq.length;}int InsElem(SqList &sq,ElemType x,int i) /*插入元素*/{ int j; if (i<1 || i>sq.length+1)/*无效的参数i*/ return 0; for (j=sq.length;j>i;j--)/*将位置为i的结点及之后的结点后移*/ sq.data[j]=sq.data[j-1]; sq.data[i-1]=x; /*在位置i处放入x*/ sq.length++; /*线性表长度增1*/ return 1;}int DelElem(SqList &sq,int i)/*删除元素*/{ int j; if (i<1 || i>sq.length) /*无效的参数i*/ return 0; for (j=i;j<sq.length;j++) /*将位置为i的结点之后的结点前移*/ sq.data[j-1]=sq.data[j]; sq.length--; /*线性表长度减1*/ return 1;}void DispList(SqList sq)/*输出线性表*/{ int i; for (i=1;i<=sq.length;i++) cout<<sq.data[i-1]; cout<<endl;}int main(){ SqList A; InitList(A);InsElem(A,'2',1);/*插入元素*/InsElem(A,'4',2);InsElem(A,'1',3);InsElem(A,'5',4);InsElem(A,'6',5);InsElem(A,'7',6);printf("线性表A:");DispList(A);cout<<"删除线性表中的第3个元素后:"<<endl;DelElem(A,3);DispList(A);return 0;}
0 0
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- 顺序表的基本操作
- JSON格式数据解析(Java版)
- 水仙花数-java实现
- Java中多态的实现机制
- 使用特定analyzer分析文本
- 一起talk C栗子吧(第一百四十五回:C语言实例--socket概述)
- 顺序表的基本操作
- Unity3d面试3
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enable
- Redis+Spring缓存实例(windows环境,附实例源码及详解)
- 六、树和二叉树--(0)什么是树
- 安装并运行Elasticsearch
- 百练+BFS+图上visit标记嘛,因为是最短嘛,防止重复嘛
- SGU-495 Kids and Prizes(概率DP)
- leetcode——142——Linked List Cycle II