线性表--顺序表

来源:互联网 发布:外国人在淘宝开店 编辑:程序博客网 时间:2024/04/30 17:12
#include<stdio.h>#define MAX 1000typedef struct{int data[MAX];int len;}Sqlist;void inint(Sqlist *l)//初始化顺序表{    int i,n;l->len=0;printf("请输入顺序表的元素的个数N\n");scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&l->data[i]);l->len++;}    }void  insnode(Sqlist *l,int i,int x)//将X插入到指定位置第i个位置{int j;    if((i==0||l->len<i)&&i<=MAX){printf("输入的插入指定位置有错\n");}else{for(j=l->len;j>=i;j--)l->data[j]=l->data[j-1];l->data[i-1]=x;l->len++;}} void  delnode(Sqlist *l,int i)//删除指定位置i的元素{int j;    if(i==0||i>l->len){       printf("输入的删除指定位置有错\n");}else{for(j=i-1;j<l->len-1;j++)l->data[j]=l->data[j+1];   l->len--;}}int  locate(Sqlist l,int x)//按x的值查询{     int i,flag; for(i=0;i<l.len;i++) { if(l.data[i]==x) { flag=i; break; } else flag=-1;  }     return flag;}int get(Sqlist l,int i)//取第i个位置的值{   if(i==0||i>l.len){       printf("输入的删除指定位置有错\n");}else{return l.data[i-1];}}void display(Sqlist l)//显示顺序表{     int i; for(i=0;i<l.len;i++) { printf("%d ",l.data[i]); } printf("\n");}int main(){     Sqlist s; int i,x; char c; while(1) { printf("**************************\n"); printf("*                        *\n"); printf("*    1 顺序表初始化      *\n"); printf("*    2 顺序表指定插入    *\n"); printf("*    3 顺序表指定删除    *\n"); printf("*    4 顺序表按值查询    *\n"); printf("*    5 顺序表指定取值    *\n"); printf("*    6 退出              *\n"); printf("**************************\n"); c=getchar(); if(c=='6')break; else switch(c) {  case '1':inint(&s);            printf("初始化后的顺序表:\n");        display(s);break;      case '2':printf("请输入要插入的位置和值\n");         scanf("%d%d",&i,&x);         insnode(&s,i,x);             printf("插入指定位置值后的顺序表:\n");         display(s); break;  case '3':printf("请输入要删除的位置\n");         scanf("%d",&i); delnode(&s,i);             printf("删除指定位置值后的顺序表:\n");         display(s); break;  case '4':printf("请输入要按值查询的值\n");         scanf("%d",&x); if(locate(s,x)!=-1) printf("在顺序表中查到了\n"); else  printf("没有查到"); break;  case '5':printf("请输入要取的值的位置\n");     scanf("%d",&i); printf("第%d个位置的值=%d\n",i,get(s,i)); break;     } getchar();}return 0;}

原创粉丝点击