注册 登录
编程论坛 数据结构与算法

问一个线性表基础题,自己确实画不出来

刻骨一铭心 发布于 2016-10-12 20:16, 2395 次点击
请分别使用流程图描述顺序存储的线性表插入与删除第i个元素的算法
2 回复
#2
qweiuy5662016-10-19 10:46
#include<stdio.h>
#include<iostream>
#define MAXSIZE 20
#define ElemType int
using namespace std;
typedef struct node{
    ElemType data[MAXSIZE];
    int len;
}Slink;
void creat(Slink &L);//顺序表赋值
void shuchu(Slink &L); //输出顺序表中的元素的值
void insert(Slink &L) ; //  在顺序表第i个位置插入元素x
void shanchu(Slink &L);//  删除顺序表中第i个位置的元素
main()
{
    Slink L;
    L.len=0;
    creat(L);
    shuchu(L);
    insert(L);
    shanchu(L);
   
}
void creat(Slink &L) //顺序表赋值
{
    int i,n;
    cout<<"您想填入元素的个数是"; cin>>n;
    for(i=0;i<n;i++)
    {  cout<<"请输入第"<<i+1<<"个元素:  ";
    cin>>L.data[i]; L.len++; cout<<endl;}
    cout<<"顺序表赋值完成"<<endl;
}
void shuchu(Slink &L)
{
    int i;
    cout<<"现在顺序表中的元素是";
    for(i=0;i<L.len;i++)
    cout<<" "<<L.data[i] ;
    cout<<endl;
}

void insert(Slink &L)   //  在长度为n的顺序表第i个位置插入元素x
{
    int i,x;
    cout<<"在元素个数为"<<L.len<<"的顺序表第 i 个位置插入元素 x"<<endl<<"请输入 i 和 x 的值:";
    cin>>i>>x;
    int j;j=L.len;
    if(i>L.len||i<=0) cout<<"插入元素失败"<<endl;
    else
    {
        for(;i<=L.len;L.len--)
        {
        L.data[L.len]=L.data[L.len-1];   
        }
        L.data[i-1]=x;
    }L.len=j+1;
    shuchu(L);
}
void shanchu(Slink &L)
{
    int i;
    cout<<"在元素个数为"<<L.len<<"的顺序表第 i 个位置删除元素"<<endl<<"请输入 i 的值:";cin>>i;
    for(;i<L.len;i++)
    L.data[i-1]=L.data[i];L.len--;
    shuchu(L);
}
#3
书生牛犊2016-10-20 11:32

http://wenku.baidu.com/link?url=oHxpF2a6ludo7wzl65Sy9DkcDwUG3Sg7sT5_KFpzxS6Ql3nUT8ZHYPaJjYqEa9f1wcal07YU_mzQ538IKHD-5fYi1DIhodCIJkUxlZR9Eoe


1