关于数据结构的问题(C语言版)

使用顺序存储方式建立一个有5个元素的线性表,在第二个元素前插入一个新元素并输出线性表的全部元素。需要程序能运行... 使用顺序存储方式建立一个有5个元素的线性表,在第二个元素前插入一个新元素并输出线性表的全部元素。
需要程序能运行
展开
 我来答
光点科技 2023-08-15
展开全部
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件或记录的固定字段中。相对应的,没有固定结构不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。我们都知道,结构化的数据很容易被采集和存储,分析展示起来也很容易,市场上已经有很多成熟的BI…
龍不悔
2013-11-06 · TA获得超过1137个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:491万
展开全部
#include <stdio.h>
#define N 100
int num[N],len=5;//用作顺序存储的线性表 ,定义出事长度len
int main()
{
    int i=0; 
    printf("输入原始线性表五个数据:");   
    for(i=0; i<len; i++)//输入初始数据 
             scanf("%d",&num[i]);
    printf("原始线性表:");         
    for(i=0; i<len; i++)//输出初始数据 
             printf("%d ",num[i]);
             
    printf("\n输入一个数插入在第二位前面:");
    for(i=len; i>=2; i--)//将要插入的位置的后面数据向后移一位,给插入数据留下空位 
             num[i+1] = num[i];
    scanf("%d",&num[2]);//输入插入的数据 
    len++;//线性表长度加1 
    
    printf("插入数据后线性表:");         
    for(i=0; i<len; i++)//输出插入的结果 
             printf("%d ",num[i]);
}

你看看这个可是你想要的,需不需要封装成函数?

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
一路清晨503
2013-11-06 · TA获得超过228个赞
知道小有建树答主
回答量:413
采纳率:100%
帮助的人:249万
展开全部

楼上的错了你那是在第三个元素前插入!!!!!!!!!!不是第二个元素,楼主看这里正确解答

#include<stdio.h>


struct LNode

 {

   char  data;

   struct LNode  *next;

 };

void main()

{

  struct LNode a,b,c,d,e,*head,*p;

  int in=0;

  a.data=1;

  b.data=2;

  c.data=3;

  d.data=4;

  e.data=5;

  head=&a;

  a.next=&b;

  b.next=&c;

  c.next=&d;

  d.next=&e;

  e.next=NULL;

  p=head;

  printf("The list before insert\n");

    while(p!=NULL)

  {

 printf("%d ",p->data);

 p=p->next;

  }

printf("\n");

p=head;

  printf("please input\n");

  scanf("%d",&in);

  struct LNode f;

  f.data=in;

  a.next=&f;

  f.next=&b;

  printf("The list after insert\n");

  while(p!=NULL)

  {

 printf("%d ",p->data);

 p=p->next;

  }

  printf("\n");

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
2013-11-06 · TA获得超过8605个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3377万
展开全部

/*

原表:

0 1 2 3 4 5 6 7 8 9

10

在索引5处插入55

0 1 2 3 4 55 5 6 7 8

9 10

删除索引3处的成员

0 1 2 4 55 5 6 7 8 9

10

Press any key to continue

*/

#include <stdio.h>
#include <stdlib.h>

#define MAXLEN 100 // 最大表长
#define N 10 // 每行显示数据个数
typedef int dataType;
typedef struct _tag {
dataType data[MAXLEN];
int length;
}LIST,*pList;

pList CreateList(dataType a[], int n) { // 创建一个表
int i;
LIST *NewList = (LIST *)malloc(sizeof(LIST));
if(n > MAXLEN) n = MAXLEN;
for(i = 0; i < n; ++i)
NewList->data[i] = a[i];
NewList->length = n;
return NewList;
}

void ShowList(LIST *L) {
int i;
for(i = 0; i < L->length; ++i) {
printf("%d ",L->data[i]);
if(i % N == 9) printf("\n"); // 每行显示N个数据
}
if(i % N != 0) printf("\n"); // 不满一行加一个新行符
}

void EraseElem(LIST *L, int index) { // 删除索引为index的元素
int i;
if(index > L->length - 1) {
--L->length;
return;
}
if(index < 0) index = 0;
for(i = index; i < L->length - 1; ++i)
L->data[i] = L->data[i + 1];
--L->length;
}

int InsertElem(LIST *L, int index, dataType data) { // 将data插到index索引位置
int i;
if(index >= MAXLEN) return 0;
if(index > L->length - 1) {
L->data[L->length - 1] = data;
++L->length;
return 1;
}
if(index < 0) index = 0;
for(i = L->length; i > index; --i)
L->data[i] = L->data[i - 1];
L->data[index] = data;
++L->length;
return 1;
}

int main() {
LIST *mylist;
dataType ar[] = {0,1,2,3,4,5,6,7,8,9,10};
int n = sizeof(ar)/sizeof(ar[0]);
int index;
dataType member;
mylist = CreateList(ar,n);
printf("原表:\n");
ShowList(mylist);
index = 5;
member = 55;
printf("在索引%d处插入%d\n",index,member);
InsertElem(mylist,index,member);
ShowList(mylist);
index -= 2;
printf("删除索引%d处的成员\n",index);
EraseElem(mylist,index);
ShowList(mylist);
free(mylist);
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式