创建创建一个顺序表,要求如下: 1、创建一个顺序表,其数据元素类型为整型; 2、运行过程中,从键盘输入

创建一个顺序表,要求如下:
1、创建一个顺序表,其数据元素类型为整型;
2、运行过程中,从键盘输入数据;
4、倒序输出整个顺序表。
例如:顺序表为:22,44,11,88
输出为: 88,11,44,22

#include<stdio.h>

struct SQList/*定义顺序表每个元素的结构*/
{
int data;
struct SQList * next;
};

struct SQList * SQInsert(struct SQList * list)/*插入一个元素*/
{
struct SQList * temp = list;/*临时保存原先的list*/
list = (struct SQList *)malloc(sizeof(struct SQList));/*新建一个元素*/

printf("data:");/*提示输入*/
scanf("%d", &(list->data) );/*将输入数值放到新元素中*/
list->next = temp;/*将新元素和原先的顺序表串接起来, 成为一个新的顺序表*/
printf("\n");
return list;/*返回新顺序表*/

}

void SQPrint(struct SQList * list)
{
struct SQList * temp = list;/*用temp打印输出, 以免破坏顺序表*/
while(temp != NULL)/*元素不为空则一直打印*/
{
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}

void main()
{
struct SQList * list = NULL;
char select;

while(1)
{
printf("I:Insert, P: Print.\n");
printf("please select:");
select = getchar();/*select记录用户的选择, 在下面的switch时做判断使用*/
/*需要添加功能的话也很容易, 只要在下面的switch中添加一个case就可以, 比如加入一个删除功能, 可以case 'D': SQDelete(list), 然后在main前面编辑这个SQDelete函数就可以啦, 再在前面的输入提示那里显示D: delete就更完善啦*/
switch(select)
{
case 'I':
list = SQInsert(list);
break;
case 'P':
SQPrint(list);
break;
default:
printf("invalid input.\n\n");
break;
}
getchar();/*清除输入的回车*/
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-24
#include<iostream>
using namespace std;
#define SIZE_MAX 50
typedef struct{
int array[SIZE_MAX];
int size;
}SeqList;
int main()
{
SeqList q;
int m;
cout<<"输入顺序表中存储元素的个数:";
cin>>m;
q.size=m;
for(int i=0;i<q.size;i++)
cin>>q.array[i];
for(int i=q.size-1;i>=0;i--)
cout<<q.array[i]<<" ";
return 0;
}
很简单的写了段代码,看看能不能满足你的要求~~,可以追加更新本回答被网友采纳
第2个回答  2011-03-10
建一个数组模拟栈,先入栈,在出栈

...创建一个顺序表,其数据元素类型为整型; 2、运行过程中,从键盘输入...
select = getchar();\/*select记录用户的选择, 在下面的switch时做判断使用*\/ \/*需要添加功能的话也很容易, 只要在下面的switch中添加一个case就可以, 比如加入一个删除功能, 可以case 'D': SQDelete(list), 然后在main前面编辑这个SQDelete函数就可以啦, 再在前面的输入提示那里显示D: delete就更...

编写一个算法,逐个输出顺序表中所有数据元素。设数据元素的类型为int型...
1、数据元素:是计算机科学术语。它是数据的基本单位,数据元素也叫做结点或记录。在计算机程序中通常作为一个整体进行考虑和处理。有时,一个数据元素可由若干个数据项组成,例如,一本书的书目信息为一个数据元素,而书目信息的每一项(如书名、作者名等)为一个数据项。2、编程序:是指在利用电子计算...

建立一个顺序表(数据元素为整型,表长为8)并显示顺序表中元素的初始值...
\/\/创建表 crt_tab( head , n );\/\/输出表 prt_tab( head );\/\/释放表 free_tab( head );return 0;}

用C语言创建一个顺序表并完成插入等操作
char a[],int n) { \/\/建立顺序表int i;for(i = 0;i < n;i++) L->data[i] = a[i];L->length = n;}bool listinsert(sqlist *&L,int i,char e) { \/\/插入数据元素int j;if(i < 1 || i > L->length + 1) return false;i--;for(j = L->length;j > i;j--)...

...建立一个顺序表(需要自己输入数据,并插入数据、删除数据)。_百度...
*l){ int *p,*newbase; p=l->elem; while(1) { for(;p<l->elem+l->listsize;p++) { scanf("%d",p);if(*p==-1) break;l->length++; } if((p==l->elem+l->listsize)) { newbase=(int *)realloc(l->elem,(l->listsize+LISTINCREMENT)*sizeof(int))...

c语言实现两个顺序表的合并
else if (表1.当前值=表2.当前值) {表1.当前值插入新表;表1.当前值和表2.当前值向后移动} } include<stdio.h>#include<malloc.h>#include<stdlib.h>struct student { int num; struct student *next;};void print(struct student *head) { struct student *p; p=head; ...

数据结构题 顺序表的第一个元素的存储地址是256,每个元素的长度为2,则...
256+2×(11-1)=276

编写一个程序,实现顺序表的建立,插入,查找,删除等操作
Sequenlist * creat() \/\/创建一个有具体内容的顺序表 { Sequenlist * L; int i=1,n;L=InitList( );printf("请插入数据,以0结束\\n");scanf("%d",&n);while(n!=0 && L->last<maxsize){ L->data[i]=n;i=i++;L->last++;scanf("%d",&n);} return(L);} int Length (S...

如何建立一个线性表,用c++的基本语法是什么?
2、初始化顺序表:在使用顺序表之前,首先创建一个空的顺序表,也就是初始化顺序表。这里,在程序中只需设置顺序表的结点数量ListLen为0即可。这样,后面需要添加的数据元素将从顺序表的第一个位置存储。示例代码:3、计算线性表的长度:计算线性表的长度也就是计算线性表中结点的个数,由于我们在SL...

设顺序表有10个元素,其元素类型为整型。设计一个算法,以第一个元素为...
void sorting(int *elem);\/\/int elem改为int *elem void main(){ int elem[N],i;printf("input %d numbers:\\n",N);for(i=0;i<N;i++){printf("NO.%d: ",i+1);scanf("%d",&elem[i]);}\/\/elem[i]改为&elem[i]sorting(elem);for(i=0;i<N;i++){if(i%10==0)...

相似回答