问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

顺序表的初始化

发布网友 发布时间:2023-05-17 05:15

我来回答

2个回答

热心网友 时间:2023-09-12 09:18

仔细看哦,这个东东花了鄙人不少时间
#include<stdio.h>
#define MAXSIZE 100
typedef struct
{
int data[MAXSIZE];
int len;
}SqList;

// 初始化线性表运算
void InitList(SqList *sq)
{
(*sq).len=0;
}

// 求线性表长度运算
int GetLength(SqList sq)
{
return sq.len;
}

// 求线性表中的第i个元素的运算
int GetElem(SqList sq,int i)
{
if(i<1||i>sq.len)
return 0;
else return sq.data[i-1];
}

// 按值查找运算
int Locate(SqList sq,int x)
{
int i=0;
while (sq.data[i]!=x) i++;
if(i>sq.len) return 0;
else return i+1;
}

// 插入元素运算
int InsElem(SqList *sq,int x,int i)
{
int j;
if(i<1||i>(*sq).len+1)
return 0;
for(j=(*sq).len;j>i-1;j--)
(*sq).data[j]=(*sq).data[j-1];
(*sq).data[i-1]=x;
(*sq).len++;
return 1;
}

// 删除元素运算
int DelElem(SqList *sq,int i)
{
int j;
if(i<1||i>(*sq).len)
return 0;
for(j=i;j<(*sq).len;j++)
(*sq).data[j-1]=(*sq).data[j];
(*sq).len--;
return 1;
}

//输出元素值运算
void DispList(SqList sq)
{
int i;
for(i=0;i<sq.len;i++)
printf("%d ",sq.data[i]);
printf("\n");
}

int main()
{
SqList list,*p;
SqList list2={{1,2,3,4},4};
DispList(list2);
p=&list;
InitList(p);
list.data[0]=12;
list.data[1]=9;
list.data[2]=23;
list.data[3]=45;
list.data[4]=56;
list.data[5]=8;
list.len=6;
printf("%d\n",InsElem(p,5,1));
printf("%d\n",InsElem(p,453,5));
DispList(list);
printf("%d",DelElem(p,5));
DispList(list);
printf("%d\n",Locate(list,9));
printf("%d\n",GetElem(list,10));
printf("%d\n",GetLength(list));
return 0;
}追问我要的是C++的 数据结构书上的那种

热心网友 时间:2023-09-12 09:19

你所说的顺序表就是指单向链表吧。举个例子:%D%A声明:typedef struct queue{%D%A int data;%D%A struct queue * next;%D%A }queuetype; //定义结构体类型%D%Atypedef queuetype * pqueuetype; //定义结构体指针类型%D%Apqueuetype front,rear; //声明链表头指针和尾指针%D%A操作:%D%Avoid queueinital(){%D%A front=NULL;%D%A rear=NULL; }%D%A这一段函数就是所谓的单向链表的初始化,即将链表头指针和尾指针都赋值为空而已。如果你指的是将链表各个单元中的所有数据初始化,那需要先明白一个问题,链表各单元并不是先申请空间再等待你输入值的,而是,你有一个值,程序申请空间,然后将值写入。看一下下面的入队函数:%D%Avoid inqueue(int x){%D%Apqueuetype p=(pqueuetype)malloc(sizeof(queuetype));%D%Ap->data=x;%D%Ap->next=NULL;%D%Aif(rear==UNLL){%D%A rear=p;%D%A front=p;%D%A}%D®lse{%D%A rear->next=p;%D%A rear=p;}%D%A}%D%A}%D%A通过这个入队函数,将值写入链表,链表根据你写入值的多少一个个申请空间,改变长度,通过所有指针将所有数据单元相连。实现单向顺序链表结构。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
陌陌发语音出现转码失败怎么办 女孩2010年5月10号阴历3月27早晨9点55分出生的五行缺什么 钟姓男孩名字2023年5月10日出生的 凤眼果有什么营养?凤眼果的这些营养你都知道吗? 专升本成绩多少合格 山东专升本成绩多少合格 山东2022年专升本成绩什么时候出 2024专升本成绩公布时间及入口 2023年山东专升本各专业录取分数线 什么时候出专升本成绩 山东专升本综合素质测评成绩怎么算 顺序表初始化 大神们,初始化顺序表InitList(L)的源码怎么写? 钾元素的计算公式? 红筹回归是什么意思? 贵州路发实业有限公司电话是多少? 贵州水利实业有限公司怎么样? 贵州水务运营有限公司电话是多少? 贵州水利科技开发有限责任公司电话是多少? 精神科医生是根据什么给精神*症病人开药的?(就是适合的药物)还有我这样的情况合适吃什么药? 把关的成语把关的成语是什么 关于的成语关于的成语是什么 关隘的成语关隘的成语是什么 深得雍正宠信的年羹尧,为何会被抄家赐死? 杭州宠信科技可靠吗 宠信吴玉启是不是骗子 为什么会得慢性盆腔炎? 苔古诗的诗意和含义 是不是长子如父母啊 晚秋的意思是指秋季的最后一个月吗? 商品文化的商品文化的研究 兴一贷通联烟商贷征信花了能贷吗 匿意的意思匿意的意思是什么 愧丧的意思愧丧的意思是什么 真正的好朋友到底是怎样的?单纯的友谊定义是什么? 对好朋友的一些理解 数学重要的是记忆力、推理力,还是理解能力? 怎样才能学好数学呢?请帮帮我。感谢各位大神哈。 儿童学数学是否靠记忆 渤海的自净能力是 公户建行可以给工人中国银行转账吗 对公账户可以往员工私人账户转账吗 三国时期的士族是个怎么样的存在?刘备是否真的打压益州士族呢? 安塞腰鼓和陕北秧歌的不同点 谁能帮我解答这个签是什么意思?人间悲欢命注定,不作贪求苦费心,万物有缘皆聚会,无缘聚会苦因生。 分分钟钟吊打什么意思 回归《英雄联盟》后被吊打是怎样一种体验? 惠英红2g冲浪回复网友评论,与粉丝互动十分可爱,她是一位怎样的艺人? 阿飘会不会冷 lol什么段位可以吊打黄金局 小阿飘是怎么火起来的