分类：电脑/网络-程序设计-C/C++
问题：我要C语言实现创建一个集合,事先并不知道元素个数，请问怎么实现题 
题目：输入集合元素建立集合并输出
回答：用链表就行了.以下是:#include<stdio.h>#include<stdlib.h>#define OK 1#define Error 0#define True 1#define False 0#define NULL 0typedef int status;typedef int Elemtype; //在些定义元素的类型//线性链表的存储结构typedef struct LNode{Elemtype data;struct LNode *next;}LNode,*LinkList;status InitList(LinkList &L){//构造一个空的集合if(!(L=(LinkList)malloc(sizeof(LNode)))) exit(1);L->next=NULL;return OK;}status DestroyList(LinkList &L){//销毁集合LLinkList p;if(L){p=L->next;free(L);L=p;}return OK;}status ListInsert(LinkList &L,int i,Elemtype e){//在L中第i个位置之前插入新的数据元素eLinkList p=L,s;int j=0;while (p&&j<i-1){p=p->next;j++;}if(!p||j>i-1) return Error;s=(LinkList)malloc(sizeof(LNode));s->next=p->next;p->next=s;s->data=e;return OK;}void disp(LinkList L){//显示全部元素LinkList p;if(L){p=L->next;printf("集合各元素为：");printf("%d",p->data);for(p=p->next;p;p=p->next){printf(",%d",p->data);}printf("\n");return;}printf("The LinkList Does not Exist!\n");}int main(){int e;int c,i=1;LinkList L;InitList(L);loop1:  printf("请输入第 %d 集合的元素：\n",i);scanf("%d",&e);ListInsert(L,i,e);++i;loop2:  printf("继续输入请按2，显示请按1，退出请按0\n");scanf("%d",&c);if(c==2) goto loop1;else if(c==1) {disp(L);goto loop2;}printf("正在退出...\n");DestroyList(L);system("pause");return 0;}希望这个程序对你有所作用