美文网首页
顺序表二

顺序表二

作者: 低吟浅唱1990 | 来源:发表于2017-04-10 16:54 被阅读10次

    <pre>

    /#import <Foundation/Foundation.h>
    /#include <stdio.h>
    /#define MaxSize 10
    typedef int ElemType;
    typedef struct{
    int elem;
    int length;
    int listsize;
    }Sqlist;
    /
    *
    初始化一个顺序表
    @param L Sqlist类型的指针
    */
    void initSqlist(Sqlist *L){
    L->elem = (int *)malloc(MaxSize * sizeof(ElemType));
    if (!L->elem) {
    exit(0);
    }
    L->length = 0; //开始为空
    L->listsize = MaxSize; //最大容量
    }
    void insertEle(Sqlist L,int i,ElemType item){
    ElemType base,insertPtr,
    p;
    if(i<1 || i>L->length+1) return;
    if (L->length==L->listsize) {
    base = (ElemType )realloc(L->elem,(L->listsize+10)sizeof(ElemType));
    L->elem = base;
    L->listsize = L->listsize+100;
    NSLog(@"%d",L->length);
    }
    insertPtr = &(L->elem[i-1]);
    // 第二次 单独调用的时候 插入数据使用 把数据往后挪一位
    for (p=&(L->elem[L->length-1]); p>=insertPtr; p--) {
    *(p+1) = p;
    // NSLog(@"-->%d",
    p);
    }
    insertPtr = item;
    // NSLog(@"hha->%d",
    insertPtr);
    L->length++;
    }

    /**
    删除元素
    @param L Sqlist类型的指针
    @param i 删除元素的位置
    */
    void DelElem(Sqlist *L,int i){
    ElemType delItem,q;
    if (i<1 || i>L->length) {
    return;
    }
    delItem = &(L->elem[i-1]); //要删除元素的位置
    q = L->elem + L->length-1; //最后一个元素的位置
    for (++delItem; delItem<=q; ++delItem) {
    *(delItem-1) = *delItem;
    }
    L->length--;
    }
    int main(int argc, const char * argv[]) {
    @autoreleasepool {
    // insert code here...
    NSLog(@"Hello, World!");
    Sqlist l;
    int i;
    initSqlist(&l);
    for (i=0; i<15; i++) {
    insertEle(&l, i+1, i+1);
    }
    printf("\nThe content of the list is \n");
    for (i = 0; i<l.length; i++) {
    printf("%d ",l.elem[i]);
    }
    // insertEle(&l, 3, 100);
    DelElem(&l,5);
    printf("\nThe content of the list is \n");
    for (i = 0; i<l.length; i++) {
    printf("%d ",l.elem[i]);
    }
    }
    return 0;
    }

    相关文章

      网友评论

          本文标题:顺序表二

          本文链接:https://www.haomeiwen.com/subject/jjzsattx.html