Chinaunix首页 | 论坛 | 博客
  • 博客访问: 72006
  • 博文数量: 20
  • 博客积分: 1213
  • 博客等级: 中尉
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-21 23:22
个人简介

C++1111111111111111111111111111111222222222222222222222222222222

文章分类
文章存档

2016年(1)

2011年(1)

2009年(18)

最近访客

分类: C/C++

2009-12-07 22:51:29

#include
#include
#include
#define maxsize 10
typedef int datatype;
typedef struct
{
 int data[maxsize];
 int last;
}sqlist, *sqlink;
int Empty(sqlink L);
sqlink CreateEmptyList();
void CreateEmptyList2(sqlink *pL);
void ClearList(sqlink L);
int Length(sqlink L);
int Locate(sqlink L, int x);
int GetList(sqlink L, int pos, int *x);
int Insert(sqlink L, int x, int pos);
int Delete(sqlink L, int pos);
int main(int argc, char *argv[])
{
 int i;
 int value;
 sqlink L, L2;
 L = CreateEmptyList();
 CreateEmptyList2(&L2);
 printf("L2 %d data: \n", Length(L2));
 Insert(L,0,0);
 Insert(L,1,1);
 Insert(L,2,2);
 Delete(L,5);
 Delete(L,1);
 ClearList(L);
 Insert(L,5,0);
 Insert(L,4,0);
 Insert(L,3,0);
 Insert(L,2,0);
 Insert(L,1,0);
 Insert(L,0,0);
 printf("L %d data: \n", Length(L));
 for(i=0;i<=L->last;i++)
 {
  printf("%d ", L->data[i]);
 }
 printf("\n");
 if(!GetList(L, 2, &value))
 {
  printf("L the 2nd value is %d\n",value);
 }
 Insert(L2,0,0);
 Insert(L2,1,1);
 Insert(L2,2,2);
 printf("L2 %d data: \n", Length(L2));
 for(i=0;i<=L2->last;i++)
 {
  printf("%d ", L2->data[i]);
 }
 printf("\n");
 return 0;
}
int Empty(sqlink L)
{
 if(-1 == L->last)
 {
  return 0;
 }
 return 1;
}
sqlink CreateEmptyList()
{
 sqlink L;
 L = (sqlink)malloc(sizeof(sqlist));
 L->last = -1;
 return L;
}
void CreateEmptyList2(sqlink *pL)
{
 *pL = (sqlink)malloc(sizeof(sqlist));
 (*pL)->last = -1;
}
void ClearList(sqlink L)
{
 L->last = -1;
}
int Length(sqlink L)
{
 return L->last + 1;
}
int Locate(sqlink L, int x)
{
 int i;
 for(i = 0; i <= L->last; i++)
 {
  if(x == L->data[i])
  {
   return i;
  }
 }
 return -1;
}
int GetList(sqlink L, int pos, int *x)
{
 if((pos > L->last)||(pos < 0))
 {
  return -1;
 }
 *x = L->data[pos];
 return 0;
}
int Insert(sqlink L, int x, int pos)
{
 int i;
 if((pos < 0)||(pos > L->last + 1)||(maxsize == L->last + 1))
 {
  return 1;
 }
 for(i = L->last + 1;i > pos;i--)
 {
  L->data[i]=L->data[i-1];
 }
 L->data[pos] = x;
 (L->last)++;
 return 0;
}
int Delete(sqlink L, int pos)
{
 int i;
 if((pos < 0)||(pos > L->last))
 {
  return 1;
 }
 for(i = pos;i < L->last + 1;i++)
 {
  L->data[i] = L->data[i+1];
 }
 (L->last)--;
 return 0;
}
阅读(2055) | 评论(0) | 转发(0) |
0

上一篇:tput应用2

下一篇:线性表的链表存储

给主人留下些什么吧!~~