zoukankan      html  css  js  c++  java
  • 线性表

    #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;
    }


  • 相关阅读:
    matlab curve fitting tool
    simulink model configuration parameter
    MATLAB小知识
    电源噪声与纹波
    各种“地”—— 各种“GND”
    一个不错的充电方案论坛:
    pre -regulator 前端稳压器
    LT4020替代方案
    power delivery功率输出
    LTC4020锂电池充电模块开发记录
  • 原文地址:https://www.cnblogs.com/tjkd/p/5365234.html
Copyright © 2011-2022 走看看