| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2148 人关注过本帖
标题:请老师赐教线性表搜索问题
只看楼主 加入收藏
amantuer
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-11-28
收藏
 问题点数:0 回复次数:0 
请老师赐教线性表搜索问题

程序代码:
#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 100
#define LIST_INCREAMENT 10
typedef const char * string;
typedef int ElemType;

enum Status{

   success=1,fail=0,fatal=-1,range_error=-2

};

typedef struct Sqlist{
  
  ElemType *elem;
  int Length;
  int List_Size;

}Sqlist,*Ptr;

typedef Ptr SqlListPtr;

enum Status List_Init(SqlListPtr L){

  enum Status s = success;
  L->List_Size = LIST_INIT_SIZE;
  L->Length = 0;
  L->elem = (ElemType *)malloc(sizeof(ElemType)*L->List_Size);

  if(L->elem==NULL)s=fatal;

  return s;

}


enum Status List_Insert(SqlListPtr L,int pos,ElemType elem){

   enum Status s = range_error;
   if ((pos-1)>=0 && (pos-1)<= L->Length)
   {
       
       if (L&&L->Length<L->List_Size)
       {
            for (int i = L->Length-1; i >pos-1; --i)
            {
                L->elem[i+1]=L->elem[i];
            }
            L->elem[pos-1]=elem;
            L->Length++;
            s=success;
       }

   }
   else s = fail;
   return s;

}


enum Status List_delete(SqlListPtr L,int pos)
{

   enum Status s = range_error;
   if ((pos-1)>=0 && (pos-1)<L->Length)
   {
         if (L&&L->Length>0)
         {
              for (int i = pos; i < L->Length; ++i)
              {
                  L->elem[i-1] = L->elem[i];
                  L->Length--;
                  s = success;
              }
         }
   }
   else s = fail;
   return s;

}


enum Status List_Retrival(SqlListPtr L, int pos, ElemType *elem)
{

  enum Status s = range_error;
  if(L)
  {
     if ((pos-1)>=0 && (pos-1)< L->Length)
     {
         *elem = L->elem[pos-1];
         s=success;
     }
  }
  else
      s=fatal;
  return s;

}


enum Status List_Locate(SqlListPtr L, ElemType elem, int *pos)
{

  enum Status s =range_error;
  if (L)
  {
      for (int i = 0; i < L->Length; ++i)
      {
          if (L->elem[i]==elem)
          {
              *pos = i+1;
              s = success;
              break;
          }
      }
  }
  else s = fatal;
  return s;

}


int main(){

    SqlListPtr L;

    int *save;

    printf("%d\n",List_Init(L));

    List_Insert(L,1,10);

    List_Insert(L,2,20);

    //List_delete(L,1);

    for (int i = 0; i < L->Length; ++i)
    {
        printf("%d\n",L->elem[i]);
    }

    printf("%d\n",List_Locate(L,20,save));
    
    
    return 0;
}[local]1[/local]

创建线性表 用的顺序存储结构 插入2个值 在搜索刚插入的一个值时报错 请指教。
搜索更多相关主题的帖子: Status enum int Length elem 
2019-11-28 20:49
快速回复:请老师赐教线性表搜索问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035753 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved