⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 数据结构一线性表实现.txt

📁 数据结构课堂实验 集中了数据结构,线性表,连表,栈,队列,二叉树,图,排序算法,查找算法的实现
💻 TXT
字号:
#include <stdio.h>
#include  <malloc.h>
#define  OK  1
#define  ERROR 0
#define  OVERFLOW -2
#define  TRUE 1
#define  FALSE 0
#define  NULL 0
#define InitSize 100
#define INCR  20
typedef  int  Status;
typedef int ElemType;
typedef struct
{  ElemType *Elem;
int Length;
int ListSize;
}SqList;

Status InitList_sq(SqList &L)  /*初始化操作函数定义*/
{  L.Elem=(ElemType*)malloc(InitSize*sizeof(ElemType));
   if (!(L.Elem))return(OVERFLOW);
   L.Length=0; L.ListSize=InitSize;
   return OK;
 }
Status ListInsert_sq(SqList &L, int i, ElemType e) /*插入操作函数定义*/
{  int j;
   if (i<1||i>L.Length+1) return ERROR;
   if (L.Length>=L.ListSize)
 {  L.Elem=(ElemType*)malloc((L.ListSize+INCR)*sizeof(ElemType));
if(!(L.Elem)) return(OVERFLOW);
L.ListSize+=INCR;
}
  for(j=L.Length-1;j>=i-1;j--)
    L.Elem[j+1]=L.Elem[j];
  L.Elem[i-1]=e;
  L.Length++;
  return OK;
  }

void ListOutput_sq(SqList L)/*顺序表输出操作*/
{ int i;
  for(i=0;i<=L.Length-1;i++)
     printf("%6d",L.Elem[i]);
  printf("\n");
}

Status ListDelete_sq(SqList &L,int i,ElemType &e)/*顺序表删除操作*/
{ElemType *p,*q;
if ((i<1)||(i>L.Length)) return ERROR;
p=& (L.Elem[i-1]);
e=*p;
q=L.Elem+L.Length-1;
for (++p;p<=q;++p) *(p-1)=*p;
--L.Length;
return OK;
}

Status LocateElem_sq(SqList L,ElemType e)/*顺序表查找操作*/
{ElemType *p;
int i;
i=1;
p=L.Elem;
while(i<=L.Length && e!=*p++) ++i;
if (i<=L.Length) return i;
else return NULL;}

Status ListEmpty_sq(SqList L)/*顺序表判空操作*/
{
if (L.Length) return TRUE;
else return FALSE;
}

main()
{ SqList La;
  int i;
  InitList_sq(La);
  for (i=0;i<5;i++)  ListInsert_sq(La,i+1,2*i);
  ListOutput_sq(La);
  ListInsert_sq(La,1,999);
  ListOutput_sq(La);
  ListInsert_sq(La,4,888);
  ListOutput_sq(La);
  ListDelete_sq(La,4,888);
  if (ListEmpty_sq(La)) ListOutput_sq(La);
  ListInsert_sq(La,La.Length+1,111);
  ListOutput_sq(La);
  if (!LocateElem_sq(La,0))  printf("Have not find: 112\n");
  else printf("Possion : %d",LocateElem_sq(La,111));
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -