sq_include

这个程序里包括了对顺序表的基本操作:创建、显示、插入、删除、查找

#include<stdio.h>
#define MaxLen 50
typedef int elemtype;
typedef elemtype sqlist[MaxLen];

int create(sqlist A)
{
    int i,n;
    printf("please input the count of element:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&A[i]);
    }
    return n;
}

void disp(sqlist A,int n)
{
    int i;
    if(n==0)
        printf("the sequence list is empty!\n");
    for(i=0;i<n;i++)
        printf("%d ",A[i]);
    printf("\n");
}

/*insert num to front of number i*/
int ins(sqlist A,int n,int i,elemtype x)
{
    int j;
    if(i<0 || i>n)
        printf("the value of i out-of rang!\n");
    else
    {
        for(j=n-1;j>=i;j--)
        {
            A[j+1]=A[j];
        }
        A[i]=x;
        n++;
    }
    return n;
}

/*delete the element of number i*/
int del(sqlist A,int n,int i)
{
    int j;
    if(i<0 || i>n)
        printf("the value of i out-of rang!\n");
    else
    {
        for(j=i-1;j<n-1;j++)
            A[j]=A[j+1];
        n--;
    }
    return n;
}

/*judgment if value x exit*/
int find(sqlist A,int n,elemtype x)
{
    int i=0;
    while(i<=n && A[i]!=x)
    {
        i++;
    }
    if(i<n)
        return 1;
    else
        return 0;

}

1.  typedef int elemtype;

  typedef elemtype sqlist[MaxLen];

之后如果想要修改sqlist里面的值的类型,可以直接将typedef int elemtype修改为typedef long elemtype或是其他,就类似与#define一样,不过这里用c可能不太好,原答案作者给的是c++里面的输入输出语句,因为即使用了typedef,但是在scanf里面的%d还是要修改,如果用cout就不存在这个问题。

2.原文中的删除函数里面的for循环有些问题

其j循环变量的值在i-1到n-1之间,而j的正确变量范围应该是i-1到n-2之间,已经过测试。

时间: 2024-10-12 22:52:50

sq_include的相关文章