C语言数据结构--(线性表一)

来源:互联网 发布:php记事本编写软件 编辑:程序博客网 时间:2024/04/30 11:59

 

               这里采用顺序存储的方式简单的实现线性表的插入和删除操作。

#include <stdio.h>
typedef int datatype; /*datatype可为任意类型,这里假设为int*/
#define maxsize 1024 /*线性表可能的最大长度,这里假设为1024*/
typedef struct SqList
{
       datatype data[maxsize];
       int length;
}SqList;
/*线性表的插入操作,在线性表的第i个位置插入一个新节点,使长度为n的线性表变成长度为n+1的线性表*/
int Line_Insert(SqList *L,datatype x,int i)
{
             int j;
             if (L->length == maxsize)    /*表已满*/
            {
                  printf("Overflow");    
                  return NULL;
             }
           if (i < 1 || i > L->length+1)/*插入位置错误*/
           {
                printf("The location is error\n");
                return NULL;
           }
            else
          {
                for (j = L->length - 1; j >= i-1;  j--)
              {
                     L->data[j+1] = L->data[j];   /*节点后移*/
              }
             L->data[i-1] = x;
             L->length ++;
             return 1;
         }
}
/*线性表的删除操作*/
int Line_Delete(SqList *L,int i)
{
         int j;
         if ( i < 1 || i > L->length)
        {
               printf("The location error\n");
               return NULL;
         }
         else
         {
             for ( j = i; j < L->length; j++) /*节点前移*/
              {
                      L->data[i-1] = L->data[i];
              }
             L->length--;
              return 1;
         }
}

原创粉丝点击