×

用数组初始化顺序表

用数组初始化顺序表(使用C语言编写程序,实现顺序表的基本运算——插入和删除)

admin admin 发表于2024-05-13 05:37:52 浏览22 评论0

抢沙发发表评论

其实用数组初始化顺序表的问题并不复杂,但是又很多的朋友都不太了解使用C语言编写程序,实现顺序表的基本运算——插入和删除,因此呢,今天小编就来为大家分享用数组初始化顺序表的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

使用C语言编写程序,实现顺序表的基本运算——插入和删除

typedef struct { int *elem; int length; int listsize; } Sqlist; status Create_sq(Sqlist *L,int n) { int i; L-》elem=(int*)malloc(100*sizeof(int)); if(!L-》elem) return 0; for(i=0;i《n;i++) scanf("%d",&(L-》elem)); L-》length=n; L-》listsize=100; return 1; } status Listinsert_sq(Sqlist *L,int i,int e) { int *q,*p,*newbase; if(i《1||i》L-》length+1) return 0; if(L-》length》=L-》listsize) { newbase=(int*)realloc(L-》elem,(L-》listsize+10)*sizeof(int)); if(!newbase) exit(-2); L-》elem=newbase; L-》listsize+=10; } q=&(L-》elem); for(p=&(L-》elem);p》=q;--p) *(p+1)=*p; *q=e; ++L-》length; return 1; } int main() { Sqlist L1; int n,a; int i,e; printf("\n please input the number of data:\n"); scanf("%d",&n); if(Create_sq(&L1,n)==1) { scanf("%d%d",&i,&e); a=Listinsert_sq(&L1,i,e); if(a==1) printf("insert success\n"); else printf("insert false\n"); printf("the list elements are:\n"); for(i=1;i《=L1.length;i++) { printf("%d\t",L1.elem); } } return 0; }

如何将一个数组赋给一个顺序表

有三种方法:1.System 有个方法static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 2.一个一个赋值for(int i =0;i《 arry.length;i++) { list.add(arry);}3.common的lang包里有个赋值的类.***隐藏网址***

怎样定义一个数组以实现顺序表

#include"iostream.h"class num{private: int a; int length;public: num() { length=0; } num(int x,int len) { if(len》100) { cout《《"data overflow!"《《endl; num(x,100); } else if(len》=0) { for(int i(0);i《len;i++) a; length=len; } else { cout《《"parameter error!"《《endl; num(); } } void set()//输入 { int len; cout《《"input the length"《《endl; cin》》len; if(len》100||len《0) { cout《《"parameter error!"《《endl; } else { for(int i=0;i《len;i++) cin》》a; length=len; } } void print()//输出 { for(int i=0;i《length;i++) cout《《a《《’ ’; cout《《endl; } void fr_print()//前驱后继输出 { int flag; cout《《"input the flag"《《endl; cin》》flag; int f=find(flag,0); if(f》0&&f《length-1) cout《《a《《endl; else if(f==0) cout《《a《《endl; else if(f==length-1) cout《《a《《endl; else cout《《"not find"《《endl; } int find(int flag,int n)//从n开始查找 { for(int i=n;i《length;i++) if(a==flag) break; if(i==length) { return -1; } else return i; } void insert()//在data后插入flag { int flag,data; cout《《"input the flag and data"《《endl; cin》》flag》》data; if(length==100) cout《《"can’t insert more!"《《endl; else if(find(flag,0)==-1) cout《《"not find!"《《endl; else { int f=find(flag,0); do { for(int i=length;i》f;i--) a; a=data; f=find(flag,f+2); length++; }while(f!=-1); } } void delet()//删除flag { int flag; cout《《"input the delete flag"《《endl; cin》》flag; if(length==0) cout《《"can’t delete more!"《《endl; else if(find(flag,0)==-1) cout《《"not find!"《《endl; else { int f=find(flag,0); do { for(int i=f;i《length;i++) a; f=find(flag,f); length--; }while(f!=-1); } }};void main(){ num a; char c=’Y’; cout《《"a:输入b:输出(前后继)c:输出d:插入e:删除"《《endl; while(c=’Y’) { cin》》c; switch(c) { case ’a’: a.set();break; case ’b’: a.fr_print();break; case ’c’: a.print();break; case ’d’: a.insert();break; case ’e’: a.delet();break; default:cout《《"error!"《《endl; } cout《《"continue or not?(Y/N)"《《endl; cin》》c; }}

用c语言数组方式建立顺序表

#include 《stdio.h》

typedef struct{

int data;

int length;

}Seqlist;//定义Seq这个新的数据类型

void creat(Seqlist &L);//建立线性表

void show(Seqlist L);//显示线性表

int main()

{

Seqlist L;

L.length=0;//初始化线性表的长度为0

creat(L);

show(L);

return 0;

}

void creat(Seqlist &L)

{

int a;

printf("请输入要创建的元素的个数:\t");

scanf("%d",&a);

for(int i=0;i《a;i++)

{

printf("请输入第%d个元素\t",i+1);

scanf("%d",&L.data);

L.length++;

}

}

void show(Seqlist L)

{

int i;

printf("线性表中的元素为:\n");

for(i=0;i《L.length;i++)

printf("%d\t",L.data);

printf("\n");

}

看百度一个用数组实现顺序表,但是总是有一个警告不知道怎么结果,求指教

  • 满足多个条件也可以分两种情况:

    1)同时满足多个条件;

    2)满足多个条件中的一个或若干个即可。

    我们以下图的数据来举例说明。

  • 2

    首先,利用AND()函数来说明同时满足多个条件。

    举例:如果A列的文本是“A”并且B列的数据大于210,则在C列标注“Y”。

  • 3

    在C2输入公式:

    =IF(AND(A2="A",B2》210),"Y","")

    知识点说明:

    AND()函数语法是这样的,AND(条件1=标准1,条件2=标准2……),每个条件和标准都去判断是否相等,如果等于返回TRUE,否则返回FALSE。只有所有的条件和判断均返回TRUE,也就是所有条件都满足时AND()函数才会返回TRUE。

  • 4

    然后,利用OR()函数来说明只要满足多个条件中的一个或一个以上条件。

    举例:如果A列的文本是“A”或者B列的数据大于150,则在C列标注“Y”。

  • 5

    在C2单元格输入公式:

    =IF(OR(A2="A",B2》150),"Y","")

    知识点说明:

    OR()函数语法是这样的:OR(条件1=标准1,条件2=标准2……),和AND一样,每个条件和标准判断返回TRUE或者FALSE,但是只要所有判断中有一个返回TRUE,OR()函数即返回TRUE。

  • 6

    以上的方法是在单个单元格中判断,也可以写成数组公式形式在单个单元格中一次性完成在上述例子中若干个辅助单元格的判断。

C++ 顺序表 初始化 问题

成员函数必须在类里面声明啊你把SeqList(SeqList《T,E》&L);在类里的声明一下,错误就没了 public: SeqList(int sz = defaultSize); SeqList(SeqList《T,E》&L);//构造函数

数组(顺序表)

#define Seq_Max_Size 100typedef struct Seq{ char sequ; //分配存储空间 int snum; // 当前元素的个数}SQ;

将顺序表改为存储位置从数组1开始的模式,完成顺序表基本操作(初始化,插入,删除,取值,输出)

#include《stdio.h》 #include《malloc.h》 #include《stdlib.h》 /*分配内存空间*/ #define size 100 // 顺序表初始化为元素个数 #define increment 10 // 顺序表满,则增加increment个元素 typedef int ElemType; typedef struct { ElemType *elem; int length; int listsize; } SqList; /*初始化顺序表*/ int List(SqList * L) { L-》elem = (ElemType *) malloc(size * sizeof(ElemType)); if (!L-》elem) return 0; L-》length = 0; L-》listsize = size; return 1; } /*插入元素*/ int insert(SqList * L, int i, ElemType e) { int j; ElemType *newbase; if (i 《 1 || i 》 L-》length + 1) return 0; if (L-》length 》= L-》listsize) { newbase = (ElemType *) realloc(L-》elem, (L-》listsize + increment) * sizeof(ElemType)); if (!newbase) return 0; L-》elem = newbase; L-》listsize += increment; } for (j = L-》length - 1; j 》= i - 1; j--) L-》elem); putchar(’\n’); return i; } int scan() { int d; printf("请选择要进行的操作\n"); printf("1.初始化\n"); printf("2.建立表\n"); printf("3.遍历 \n"); printf("4.向表中插入元素\n"); printf("5.从表中删除元素\n"); printf("其他键退出。。。。。\n"); scanf("%d",&d); return(d); } void main() { int quit=0; int i; int flag;//增加标志 ElemType e; SqList L; while(!quit) switch(scan()){ case 1:flag=List(&L);//传参要对应函数啊,还有返回值的接受 if(flag==1){ printf("初始化成功\n"); }else{ printf("初始化失败\n"); exit(-1); } break; case 2: flag=InputSqlist(&L);//L是SqList类型的,参数要求SqList*类型的,所以要传地址 printf("\n"); break; case 3:PrintSqlist(&L); break; case 4:printf("请输入插入元素的位置和值(中间以空格或回车分隔):\n"); scanf("%d%d",&i,&e); insert(&L,i,e);//改 break; case 5: printf("请输入待删除元素的位置:\n"); scanf("%d",&i); flag=Dele(&L,i); if(flag){//改 printf("删除成功\n"); }else{ printf("删除失败\n"); } break; default:quit=1; } }

OK,关于用数组初始化顺序表和使用C语言编写程序,实现顺序表的基本运算——插入和删除的内容到此结束了,希望对大家有所帮助。