当前位置:首页 » 编程语言 » c语言动态数据列表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言动态数据列表

发布时间: 2023-07-12 21:22:22

⑴ 使用c语言实现动态数组

你的太乱了的吧磨昌
二维数瞎颤扒组,其实实质是一位数组横排
为啥用两个for循环,我看了会头晕,洞行你的太乱了
#include<stdio.h>
#include<malloc.h>
int main()
{
int *p;
int m,n;
scanf("%d%d",&m,&n);
p = (int*)malloc(sizeof(int)*m*n);
for(int i=0;i<(m*n);i++)
{
scanf("%d",p+i);
}
for( i=0;i<(m*n);i++)
{
print(“%d ”,p+i)
if((i+1)%4==0)
printf("\n");
}
希望对你有帮助

⑵ C语言如何定义动态数组

intmain(void)

{

int*number,n,m,i;

printf("thetotalnumbersis:");

scanf("%d",&n);

printf("backm:");

scanf("%d",&m);

number=(int*)malloc(n*sizeof(int));

printf("input%dintegers:",n);

for(i=0;i<n;i++)

{

scanf("%d",&number[i]);

}

(2)c语言动态数据列表扩展阅读

动态数组,是相对于静态数组而言。静态数组的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。而动态数组则不然,它可以随程序需要而重新指定大小。

动态数组的内存空间是从堆(heap)上分配(即动态分配)的。是通过执行代码而为其分配存储空间。当程序执行到这些语句时,才为其分配。程序员自己负责释放内存。使用动态数组的优点是可以根据用户需要,有效利用存储空间。

⑶ 数据结构顺序表动态c语言

int Insert(Sqlist &L,int x,int i) {//其他函数没有问题,下面是修改后的插入函数

int j;

if(i < 0 || i > L.length - 1) return 0;

for(j = L.length; j > i; --j)

L.elem[j] = L.elem[j - 1];

L.elem[i] = x;

++L.length;

return 1;

}

⑷ C语言动态列表排序

链表吗?以前练习的时候做过一个,你参考下

#include<stdio.h>

#include<stdlib.h>

#include<iostream.h>

#define OK 1;

#define ERROR 0;

typedef int ElemType;

typedef int Status;

typedef struct LNode{

ElemType data;

struct LNode *next;

}LNode,*LinkList;

void CreateList(LinkList &L,int n) //创建表

{

int i;

LNode *p;

L=(LinkList)malloc(sizeof(LNode));

L->next=NULL;

for(i=n;i>0;i--)

{

p=(LinkList)malloc(sizeof(LNode));

printf("输入第%d个元素的值 ",i);

scanf("%d",&p->data);

p->next=L->next;

L->next=p;

}

printf("创建成功! ");

}

Status GetElem(LinkList &L,int i) //得到第i个元素

{

ElemType j=1,e;

LNode *p;

p=L->next;

while(j<i&&p)

{

p=p->next;

j++;

}

if(!p||j>i)

{

printf("第%d个元素不存在! ",i);

return ERROR;

}

e=p->data;

printf("第%d个元素是%d ",i,e);

return OK;

}

Status ListInsert(LinkList &L,int i,ElemType e) //插入元素

{

ElemType j;

LNode *p,*s;

p=L;

j=1;

while(p&&j<i)

{

p=p->next;

++j;

}

if(!p||j>i)

{

printf("不能在第%d中插入 ",i);

}

s=(LinkList)malloc(sizeof(LNode));

s->data=e;

s->next=p->next;

p->next=s;

return OK;

}

Status ListDelete(LinkList &L,int i) //删除元素

{

LNode *p,*q;

p=L;

int j=0;

while(p->next&&j<i-1)

{

p=p->next;

j++;

}

if(!(p->next)||j>i-1)

{

printf("查找失败! ");

return ERROR;

}

q=p->next;

p->next=q->next;

free(q);

printf("删除成功! ");

return OK;

}

void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc) //归并

{

LNode *pa,*pb,*pc;

Lc=pc=La;

pa=La->next;

pb=Lb->next;

while(pa&&pb)

{

if(pa->data<=pb->data)

{

pc->next=pa;

pc=pa;

pa=pa->next;

}

else

{

pc->next=pb;

pc=pb;

pb=pb->next;

}

}

pc->next=pa?pa:pb;

printf("归并成功! ");

}

void PList(LinkList &L) //打印

{

LNode *p;

p=L->next;

while(p)

{

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

p=p->next;

}

printf(" ");

}

Status CList(LinkList &L) //排序

{

LNode *p;

int flag,e;

p=L;

while(1)

{

flag=0;

for(p=L;p->next->next!=NULL;p=p->next)

{

if(p->next->data>p->next->next->data)

{

e=p->next->data;

p->next->data=p->next->next->data;

p->next->next->data=e;

flag=1;

}

}

if(flag==0)

{

printf("排序成功! ");

return OK;

}

}

}


int main()

{

int count=1,m,n,k,sum,i,j,g;

LinkList list[10];

printf("输入创建表的个数 ");

scanf("%d",&m);

for(;count<=m;count++)

{

printf("输入第%d个表的元素个数 ",count);

scanf("%d",&n);

printf("逆序输入n个元素 ");

CreateList(list[count],n);

printf("第%d个表创建成功 ",count);

}

sum=m+1;

while(1)

{

printf("功能: 1.查找某位置元素的值 2.插入元素 3.删除元素 4.元素排序 5.两表合并 6.显示表内元素 7.退出 ");

scanf("%d",&k);

switch(k)

{

case 1:

printf("输入查找的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

printf("输入查找位置 ");

scanf("%d",&j);

GetElem(list[i],j);

break;

case 2:

printf("输入要插入的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

printf("输入要插入的位置 ");

scanf("%d",&j);

printf("输入要插入的值 ");

scanf("%d",&g);

ListInsert(list[i],j,g);

break;

case 3:

printf("输入要删除的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

printf("输入要删除的位置 ");

scanf("%d",&j);

ListDelete(list[i],j);

break;

case 4:

printf("输入要排序的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

CList(list[i]);

break;

case 5:

printf("输入表1 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

printf("输入表2 ");

scanf("%d",&j);

if(i>m)

{

printf("不存在表%d ",j);

break;

}

MergeList(list[i],list[j],list[sum]);

printf("已经将合并的标放入第%d个表中",sum);

sum++;

m++;

break;

case 6:

printf("输入要显示的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

PList(list[i]);

break;

case 7:

return 0;

default:

printf("错误的指令!/n");

break;

}

}

}