永发信息网

(1)初始化顺序表(空表)L (2)采用尾插法在(1)所得的L中插入字符a,b,c,d,e元素 (3)输出顺序表L (4)输出L的长

答案:2  悬赏:60  手机版
解决时间 2021-01-03 19:22
#include
#include

using namespace std;

typedef int ElemType;//int 助记符

const LIST_INIT_SIZE=100;
const LISTINCREMENT=10;

typedef struct
{
ElemType *elem;
int length;
int listsize;
int incrementsize;
}SqList; //顺序表的结构

void InitList_Sq( SqList &L, int maxsize,int incresize);
void ListInserRear(SqList &L,int n, ElemType z[]);
void ErrorMessage(char *s);
void ListInsert_Sq( SqList &L, int i, char z[] ) ;
void increment(SqList &L);

int main()
{
SqList L;
char a,b,c,d,e;
char z[]={a,b,c,d,e};
InitList_Sq(L,6,3);

ListInserRear(L,0,e);

return(1);
} //主函数

void InitList_Sq( SqList &L, int maxsize,int incresize)
{
L.elem = new ElemType [maxsize]; //分配数组空间
L.length = 0; //空表
L.listsize = maxsize; //可容纳数据元素的最大个数
L.incrementsize = incresize; //扩容元素个数
}

void ListInserRear(SqList &L,int n, char z[])
{
int i;
for(i=1;i<=n;i++)
ListInsert_Sq(L,L.length+1,z[i-1]);
}

void ListInsert_Sq( SqList &L, int i, char z[] )
{ ElemType *q,*p;
if (i<1||i>L.length+1)
ErrorMessage(char *s);//(“ i 值不合法!”)调自定义的函数
if (L.length >= L.listsize)
increment(L);// 当前存储空间已满,为 L扩充空间
q = &(L.elem[i-1]); // q为插入位置(存储地址)
for (p=&(L.elem[L.length-1]); p >=q; --p)
*(p+1) = *p; // 插入位置及之后的元素右移
*q = z[i-1]; // 插入e
++L.length; // 顺序表长度增1
}

void ErrorMessage(char *s)
{
cout< exit(1);
}//i值不合法,

void increment(SqList &L)
{ ElemType *a; int i;
a =new ElemType[L.listsize+L.incrementsize];
for(i = 0; i a[i] = L.elem[i]; // 将原空间数据拷到新空间
delete [] L.elem; // 释放原数组占用的空间
L.elem = a; // 移交新空间首地址
L.listsize += L.incrementsize; // 扩后的L最大空间
}

我实在是编不下去了,求高手指点,加注释,主要是在空表插入a,b,c,d,e.考虑不清楚了.加注释,谢啦~~
最佳答案
额,好复杂呀,又是苦逼的程序猿
全部回答
#include #include #include #define ok 1 #define error 0 #define true 1 #define false 0 #define print 1 typedef char elemtype; typedef struct lnode { elemtype data; struct lnode *next; }lnode; lnode *createlinklist(void) { lnode *head; head=(lnode *)malloc(sizeof(elemtype)); head->next =null; head->data=0; #if print printf("建立一个空链表,其头结点的指针为:%d\r\n",head); #endif return head; } void insertlist(lnode *l,elemtype e,int mark) { lnode *q; lnode *p=l; q=(lnode *)malloc(sizeof(lnode)); q->data=e; if(mark) //在表尾插入数据 { while(p->next) p=p->next; q->next=null; p->next=q; } else //在表头插入数据 { q->next=p->next; p->next=q; } l->data++; #if print printf("插入数据成功\r\n"); #endif } void printlist(lnode *l) { int i=0; lnode *p=l; while(p=p->next) { i++; printf("%d\t",p->data); if(!i%10) printf("\r\n"); } printf("\r\n"); } void main() { lnode *l; l=createlinklist(); insertlist(l,'a',1); insertlist(l,'b',1); insertlist(l,'c',1); insertlist(l,'d',1); insertlist(l,'e',1); printlist(l); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
买的ipad皮套上有一块磁铁,不是休眠那块,而
红豆汤和绿豆汤有什么区别那!?
读韩愈阅读答案
护颈枕什么牌子的好,护颈枕品牌排名
长江三峡水利枢纽工程是由________、________
怎么买电影票最便宜?
原来我和我女朋友挺高兴的交往了四个月,彼此
煌组词有哪些词语
阅读下面的文字,根据要求作文。(60分)人生
断路器分流牌是什么东西
你好我在银行贷53万贷30年月供多少
装修顶面走线管的垂直长度是算到原顶还是吊顶
恐龙时期都有那些恐龙
判断题分母相同的分数比较大小,分子大的分数
湖北离浙江多远
推荐资讯
傲视天地主角到底几岁啊?
单选题选出下列单词中划线部分读音不同于其他
俨然是什么意思?急,求告诉!😭
想知道吗用英语怎么说
一块长方形黑板的周长是96分米,长是宽的3倍
喝得很慢的土豆汤(15分)那天下午,我和妻子
如图所示三幅插图,请说出它们各自的物理原理
单选题下列句子中加粗的熟语使用不恰当的一项
我们周围存在的水污染原因主要是________,__
单选题“绿叶在光下制造淀粉”的实验,能为我
如何访问别人空间不留痕迹
一望无际是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?