一个简单顺序表的基本操作

#include <stdio.h>
#include <stdlib.h>
#define Max_Size 100 /*线性表可能达到的最大长度*/
typedef int DataType;
typedef struct List
{
DataType data[Max_Size]; /*用于存放数据元素数组 */
int length; /* 当前表长度*/
}SeqList;

void InitList (SeqList &L)
{ L.length=0;
}

int Locate(SeqList L, DataType y)
{
int i=0;
while ((i<=L.length) &&(L.data[i]!=y)) /*顺序搜索表中的数据元素,直到找到*/
/*值等于y数据元素,或搜索到表尾而没找到*/
i++;
if (i>L.length)
return (0);
else
return(i);
}
/*静态数组存储结构下进行插入操作*/
void InsList(SeqList &L, int i, DataType y)
{ int j;
if(i<1||i>L.length+1) /*若i越界则插入失败*/

return;
for(j=L.length+1;j>=i;j--)
L.data[j]=L.data[j-1];
L.data[i-1]=y;
L.length++;
return;
}
void DispList(SeqList L)
{ int i;
for(i=1;i<=L.length;i++)
printf("%c",L.data[i-1]);
printf("\n");
}
DataType DelList(SeqList &L, int i, DataType &y)
{ int j;
y=L.data[i-1];/*因为数组的下标从0开开始,线性表的位置是从1开始*/
if(i<1||i>L.length)
exit(1);/* 执行此函数中止程序运行,此函数在stdlib.h中有定义 */
for(j=i;j<L.length;j++)
L.data[j-1]=L.data[j];
L.length--;
return y;
}

int DelElem(SeqList &L,DataType i) /*删除指定位置的数据元素*/
{ int j;
if(i<1||i>L.length)
return 0;
for(j=i;j<L.length;j++)
L.data[j-1]=L.data[j];
L.length--;
return 1;
}

int DelElemV(SeqList &L,DataType y) /*删除指定的数据元素*/
{
int i, j;
/* 从线性表中顺序查找出值为x的第一个元素 */
for(i = 0; i < L.length; i++){
if(L.data[i] == y){
break;
}
}
/* 若查找失败,表明不存在值为x的元素,返回0 */
if(i == L.length){
return 0;
}
/* 删除值为x的元素L->list[i] */
for(j = i + 1; j < L.length; j++){
L.data[j-1] = L.data[j];
}
L.length--;
return 1;

}

void main()
{
//验证
SeqList L;
DataType x;
InitList(L);
InsList(L,1,‘a‘);
InsList(L,2,‘c‘);
InsList(L,3,‘a‘);
InsList(L,4,‘e‘);
InsList(L,5,‘d‘);
InsList(L,6,‘b‘);
DispList(L);
printf("\n");
InsList(L,1,‘y‘);
DispList(L);
printf("\n");
DelElem(L,3);
DispList(L);
printf("\n");

DelElemV(L,‘a‘);
DispList(L);
printf("\n");
printf("%c",L.data[Locate(L, ‘e‘)]);
printf("\n");
DispList(L);
printf("\n");
printf("%c",DelList(L, 3, x));
}

时间: 2024-12-07 05:07:07

一个简单顺序表的基本操作的相关文章

一个简单顺序表的C++实现

/* SList.cpp Author: Qiang Xiao Time: 2015-07-11 */ #include<iostream> using namespace std; const int MAX_LENGTH= 20; class SList{ private: int max_len; int arr[MAX_LENGTH]; int len; public: SList(int a[], int len); bool append(int); bool insert(int

C++ 顺序表的基本操作

顺序表的基本操作: "seqlist.h"头文件 #ifndef SEQLIST_H_INCLUDED #define SEQLIST_H_INCLUDED #include <iostream> #include <stdlib.h> using namespace std; template <class Type> class SeqList { public: SeqList(size_t sz = INIT_SIZE); bool IsFu

JQuery中一个简单的表单验证的实例

html代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&quo

每天一个小程序——顺序表的基本操作!

#include<stdio.h> #define max 100 typedef struct{ int data[max]; int last;}List; void Init(List *L)//顺序表初始化{ //L.data[0]=0; L->last=0;} void Createlist(List *L,int n){    int i;    printf("请输入顺序表元素:\n");    for(i=0;i<n;i++) {       

数据结构:顺序表的基本操作

顺序表作业: #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; typedef int T; class SeqList{ private: T *data; int MaxSize; ///顺序表最多可以存放的元素个数. int last; ///顺序表最后一个元素的下标,初始值为-1. public: SeqList(int sz); void Input();

jquery 一个简单的表单验证实例

表单验证在网站开发过程中经常遇到,我们可以使用服务器端语言验证,也可以使用客户端语言来验证.本文章向大家介绍jquery客户端验证表单的一个简单实例.实例仅作参考. <body> <form method="post" action=""> <div class="int"> <label for="username">用户名:</label> <!-- 为每个

简单顺序表的插入,删除,指定位置,指定元素的插入删除操作

头文件 SeqList.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include<stdio.h> #include<string.h> #include<assert.h> #define MAX_SIZE 10 typedef int DataType; typedef unsigned int size_t; typedef struct SeqList { DataType array[MAX_SIZE]; s

顺序表中基本操作

前言:最近玩esp8266和ucos-iii以及在学c++比较多,接触的大部分都是指针.结构体.链表:刚好自己又在看数据结构(数据结构真的非常重要,要好好学,是学算法的敲门砖,哈哈哈),个人看法在对顺序表进行元素增和删操作,效率比较低(要移动非常多的其他元素),而我之前写的对链表操作,使用指针操作,效率就高多了.好了,来看今天的学习总结吧! 一.顺序表的初始化: 算法步骤: 1.为顺序表L动态分配一个预定义大小的数组空间,使elem指向这段空间的基地址 2.将表的当前长度设为0 伪代码实现: S

c语言实现顺序表的基本操作

转自 https://www.cnblogs.com/rookiefly/p/3425075.html 原作者:Step by Step 经过三天的时间终于把顺序表的操作实现搞定了.(主要是在测试部分停留了太长时间) 1;线性表顺序存储的概念:指的是在内存中用一段地址连续的存储单元依次存储线性表中的元素. 2;采用的实现方式:一段地址连续的存储单元可以用固定数组或者动态存储结构来实现,这里采用动态分配存储结构. 3;顺序表的定义及操作集合:头文件为defs.h 1 #ifndef _DEFS_H