顺序表二

#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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容