| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3030 人关注过本帖
标题:利用线性表插入,怎样在数组插入元素
只看楼主 加入收藏
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
 问题点数:0 回复次数:6 
利用线性表插入,怎样在数组插入元素
#define LIST_INIT_SIZE 100
#define LISTINCREMENT  10
#include<stdio.h>
#include<malloc.h>
 typedef struct
    {
        char *elem;
        int length;
        int Listsize;
    }SqList;
int InitList Sq(struct &L);
int ListTnsert_Sq(struct &L,int i,char e);
void main
{
    SqList aa[n];
    printf("输入待插入数组:\n");
    for(int s=0;s<n;s++)
        scanf("%c",&aa[s]);
    InitList_Sq(aa[n]);
    ListInsert_Sq(aa[n],int i=4,char add='z');
        for(int j=0;j<n+1;j++)
            printf("%c",aa[i]);
        return 0;
}
int InitList Sq(struct &L){
    L.elem=(char *)malloc(LIST_INIT_SIZE *sizeof(char);
    if(!L.elem)return -2;
    l.length=0;
    L.listsize=LIST_INIT_SIZE;
    return 1;
}
int ListInsert_Sq(struct &L,int i,char e)
{
    if(i<i || i>L.length+1)return 0;
    if(L.length>=L.listsize){
        int newbase=(char *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(char));
        if(!newbase)return -2;
        L.elem=newbase;
        L.listsize+=LISTINCREMENT;
    }
    int *q=&(L.elem[i-1]);
    int *p;
    for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;
    *q=e;
    ++(L.length);
    return 1;
}
以上是基本的代码,在VC++ 6.0 运行中出现了以下错误:

cpp(11) : error C2146: syntax error : missing ';' before identifier 'Sq'
D:\VC++6.0\MSDev98\MyProjects\gg\数据结构1\插入.cpp(11) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
我该怎么弄啊,请教!
搜索更多相关主题的帖子: 线性 元素 
2008-09-26 17:02
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
你写的程序语法问题太多了,
(1)首先main()既然用void为什么还要用return 0?
main后面不加括号能叫函数吗?

(2)还有建议你把InitList Sq()这个函数名改成
InitList_Sq()函数名中间有空格怎么可以?

(3)C语言或者C++中的动态数组的定义是不可以直接像你这样SqList aa[n],
这样定义的,应该用SqList aa=new SqList[n],或者用c语言中malloc,况且你这里n根本没有事先定义,也没有对它进行赋值的语句;

恕在下直言,其实你参考课本自己去编写程序...
2008-09-26 18:36
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:0 
回复 2# geninsf009 的帖子
首先谢谢你的回帖。很不错。这是我刚学数据结构编的第一个程序,自己也认为很差劲。对于你说的第二问题,我也认为这样,但如果像你所说改的话,就会出现很多错误。
2008-09-26 21:40
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
是这样的,譬如如果你的函数头格式错了,编译器在发现之后,只报函数头出错,

这样函数体内的代码就不进行编译了,所以错误看似只有一个,但如果,你把这个错误改正了,

那么编译器就开始编译函数体,而此时函数体内可能有更多的错误,刚刚替你试了一下,

把函数名格式改正确了,错误是33个,这是编写程序常见的现象...

大家共勉,加油!
2008-09-26 21:52
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:0 
回复 4# geninsf009 的帖子
恩。就是33个。 可是严蔚敏教材的算法中,就是没有下标线啊
2008-09-26 22:12
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
严蔚敏教材中的代码只是伪代码而已,它只是说明思想,

我建议你在看懂它的思想之后,完全离开它,自己去编写,

这样也可以加深你对算法的理解...

PS:再给你个建议,尽量详细地为你的代码加上注释,有利于你的学习,我写代码的注释都很详尽...

[[it] 本帖最后由 geninsf009 于 2008-9-26 22:18 编辑 [/it]]
2008-09-26 22:16
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:0 
回复 6# geninsf009 的帖子
好,我拼啦
2008-09-26 22:17
快速回复:利用线性表插入,怎样在数组插入元素
数据加载中...
 
   



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

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