Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17404
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-04 10:14
文章分类
文章存档

2013年(12)

我的朋友

分类: C/C++

2013-12-07 14:02:50

/***********************************
 *静态顺序表的插入和删除
***********************************/

#include
#include
#define MAXSIZE 100

/**   向顺序表中插入元素    */
/**   参数Sqlist:表首地址    */
/**   参数*len: 表的长度     */
/**   参数i: 插入元素的位置 */
/**   参数x:待插入的元素值  */
void insertElem(int sqlist[],int *len,int i,int x);

/**   向顺序表中删除元素    */
/**   参数Sqlist:表首地址    */
/**   参数*len: 表的长度     */
/**   参数i: 插入元素的位置 */
void DelElem(int sqlist[],int *len,int i);

int menu();

void InitSqlist(int sqlist[],int *len);

void Insert(int sqlist[],int *len);

void Delete(int sqlist[],int *len);

void Print(int sqlist[],int len);

int main(void)
{
 int sqlist[MAXSIZE];
 int len=0;

 InitSqlist(sqlist,&len);
 
 while(1)
 {
  switch(menu())
  {
  case 1:
   Insert(sqlist,&len);
   Print(sqlist,len);
   break;
  case 2:
   Delete(sqlist,&len);
   Print(sqlist,len);
   break;
  case 3:
   InitSqlist(sqlist,&len);
   Print(sqlist,len);
   break;
  case 0:
   exit(0);
  default:
    printf("error!");
  }
 }
 
 return 0;
}

void Print(int sqlist[],int len)
{
 int i;

 for (i = 0; i < len; ++i)
 {
  printf("%d   ",sqlist[i] );
 }
 puts("\n");
}

int menu()
{
 int n;//记录选择
 puts("1)进行插入    2)进行删除  ");
 puts("3)重置顺序表   0)退出");
 printf("输入选择的操作:");
 scanf("%d",&n);

 return n;
}

void InitSqlist(int sqlist[],int *len)
{
 int n;//初始化的数字个数
 int i;
 *len=0;

 puts("输入初始化的数字个数:");
 scanf("%d",&n);
 for(i=0;i  {
  printf("输入第%d个数:",i+1);
  scanf("%d",&sqlist[i]);
  (*len)++;
 }
}

void Insert(int sqlist[],int *len)
{
 int x;//要插入的数字
 int i;//要插入或要删除的位置

 puts("请输入要插入的数字:");
 scanf("%d",&x);
 puts("请输入要插入的位置:");
 scanf("%d",&i);
 insertElem(sqlist,len,i,x);
}

void Delete(int sqlist[],int *len)
{
 int i;//要插入或要删除的位置

 puts("请输入要删除的位置:");
 scanf("%d",&i);
 DelElem(sqlist,len,i);
}

void insertElem(int sqlist[],int *len,int i,int x)
{
 (*len)++;//使长度+1

 int n=(*len)-1;
 //int temp;

 for(;n>i-1;n--)
 {
  sqlist[n]=sqlist[n-1];
 }

 sqlist[n]=x;
}

void DelElem(int sqlist[],int *len,int i)
{
 int n;

 for(n=i-1;n<*len;n++)
 {
  sqlist[n]=sqlist[n+1];
 }
 (*len)--;
}

阅读(78) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~