首页 > 其他 > 详细

线性表顺序存储结构和链式存储结构

时间:2019-09-01 22:21:08      阅读:69      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#include <iostream>
#include <malloc.h>
#define Max 10
using namespace std;
typedef struct{
    char data[Max];
    int length;
}sqlist;

void initlist(sqlist *&l)   //线性表初始化*&代表可以对l的地址改变 
{
    l=(sqlist *)malloc(sizeof(sqlist));
    l->length=0;
} 

void easyinsert(sqlist *l)
{
    char c=getchar();
    if(l->length>Max)
    {
        return ;
    }

    l->data[l->length++]=c;
}

void display(sqlist l)
{
    for(int i=0;i<l.length;i++)
    {
        cout<<l.data[i];
    }
    cout<<endl;
}
int leng(sqlist l)
{
    cout<<l.length<<endl;
    return l.length;
}
void getelem(sqlist l,int n)
{
    if(n<1||n>l.length)
    {
        return ;
    }
    char e;
    e=l.data[n-1];
    cout<<e<<endl;
}
void weizhi(sqlist l,char c)
{
    for(int i=0;i<l.length;i++)
    {
        if(c==l.data[i])
        {
            cout<<i+1<<"\n";
        }
    }
}
void charu(sqlist *l,char c,int n)
{
    if(n<1||n>l->length)
    {
        return ;
    }
    l->length++;
    int i;
    for(i=l->length;i>n;i--)
    {
        l->data[i-1]=l->data[i-2];
    }
    l->data[i-1]=c;
    
}
void shanchu(sqlist *l,int i)
{
    if(i<1||i>l->length)
    {
        return ;
    }
    l->length--;
    for(int j=i-1;j<l->length;j++)
    {
        l->data[j]=l->data[j+1];
    }
}

int main()
{
    sqlist *l;
    initlist(l);
    easyinsert(l);
    easyinsert(l);
    easyinsert(l);
    easyinsert(l);
    easyinsert(l);
    display(*l);
    leng(*l);
    getelem(*l,4);
    weizhi(*l,c);
    charu(l,g,5);
    display(*l);
    shanchu(l,3);
    display(*l);
}

初始化必须用*&l,其余如果对于线性表有改变则调用指针

原因:https://www.cnblogs.com/xiang-little/p/5840809.html

void initlist(sqlist *&l)   //线性表初始化*&代表可以对l的地址改变 
{
    l=(sqlist *)malloc(sizeof(sqlist));
    l->length=0;
} 

线性表顺序存储结构和链式存储结构

原文:https://www.cnblogs.com/BananaMan/p/11443910.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!