• 线性表


    #include <stdio.h>
    #include <stdlib.h>
    #define list_init_size 100
    #define listincrement 10
    typedef struct
    { int *elem;
    int length;
    int listsize;
    } sqlist;
    int initsqlist (sqlist *l)
    {
    l->elem=(int *)malloc(list_init_size*sizeof(int));
    if(!l->elem)
    exit(0);
    l->length=0;
    l->listsize=list_init_size;
    return 0;
    }
    int listinsert_sq(sqlist *l,int i,int e)
    {
    int *p,*q,*newbase;
    if(i<1||i>l->length+1)
    exit(0);
    if(l->length>=l->listsize)
    {
    newbase=(int *)realloc(l->elem,(l->listsize+listincrement)*sizeof(int));
    if(!newbase)
    exit(0);
    l->elem=newbase;
    l->listsize+=listincrement;
    }
    q=&(l->elem[i-1]);
    for(p=&(l->elem[l->length-1]);p>=q;--p)
    *(p+1)=*p;
    *q=e;
    ++l->length;
    return 0;
    }
    int listdelete_sq(sqlist *l,int i,int m)
    {
    int *p,*q;
    if((i<1)||(i>l->length))
    exit(0);
    p=&(l->elem[i-1]);
    m=*p;
    q=l->elem+l->length-1;
    for(++p;p<=q;++p)
    *(p-1)=*p;
    --l->length;
    return m;
    }
    int main()
    {
    sqlist l;
    int i,j,e,k,m=0;
    initsqlist(&l);
    printf("输入顺序表: ");
    for(j=0;j<5;j++)
    {
    scanf("%d",&l.elem[j]);
    l.length++;
    }
    printf("输入要插入的位置和数: ");
    scanf("%d%d",&i,&e);
    listinsert_sq(&l,i,e);
    printf("插入后的顺序表: ");
    for(j=0;j<l.length;j++)
    printf("%d ",l.elem[j]);
    printf(" 输入要删除的位置: ");
    scanf("%d",&k);
    m=listdelete_sq(&l,k,m);
    printf("删除后的顺序表: ");
    for(j=0;j<l.length;j++)
    printf("%d ",l.elem[j]);
    printf(" 删除的数为: ");
    printf("%d ",m);
    return 0;
    }


  • 相关阅读:
    正式搬家到博客园
    (SQL 技术篇)主键,外键,唯一约束,check约束
    Firefox 多个版本共存
    HTML5的视频格式之争
    jquery 提示简单效果插件 cluetip
    C# GUID的使用
    免费的jquery ui 收集
    js 验证身份证号码
    加速Web开发的9款知名HTML5框架
    Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
  • 原文地址:https://www.cnblogs.com/tjkd/p/5365234.html
Copyright © 2020-2023  润新知