| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 348 人关注过本帖
标题:数据结构
取消只看楼主 加入收藏
蔡梓锋
Rank: 4
等 级:业余侠客
帖 子:106
专家分:202
注 册:2013-4-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
数据结构
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#define chushi 10
typedef struct list{
    int length;
    int listsize;
    int *elem;
}xin;
void chuangjian(xin *p)
{p->elem=(int *)malloc(chushi*sizeof(int));
    if(!p->elem)exit(0);
    p->length=0;
    p->listsize=chushi;
}
void fuzhi(xin *p,int i,int item)
{int *base,*q,*insertptr;
    if(i<1||i>p->length+1)exit(0);
    if(p->length>=p->listsize)
    {base=(int *)realloc(p->elem,(p->listsize+10)*sizeof(int));
        if(!base)exit(0);
        p->elem=base;
        p->listsize+=10;}
    insertptr=&(p->elem[i-1]);
    for(q=&(p->elem[p->length-1]);q>=insertptr;q--)
    *(q+1)=*q;
    *insertptr=item;
    p->length++;
   
   
   
   
    }


void main()
{int i;   
     xin k;
     chuangjian(&k);
     for(i=0;i<15;i++)
     fuzhi(&k,i+1,i+1);
     for(i=0;i<k.length;i++)
     printf("%d",k.elem[i]);


}
大神帮我解释一下for(q=&(p->elem[p->length-1]);q>=insertptr;q--),是不是第一次进入该函数时(即i=1),p->length-1是等于-1,这样没有出错吗?
这样说明数组的括号里面【可以使负数】。
搜索更多相关主题的帖子: include 
2013-07-28 21:38
蔡梓锋
Rank: 4
等 级:业余侠客
帖 子:106
专家分:202
注 册:2013-4-20
收藏
得分:0 
还有,貌似上面这两句循环是没有用的, for(q=&(p->elem[p->length-1]);q>=insertptr;q--)    *(q+1)=*q;
这里出现的目的是什么?

加油加油!
2013-07-28 21:44
快速回复:数据结构
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012405 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved