哈尔滨建站公司电子商务网站建设规划方案
1.写出在顺序存储结构下将线性表逆转的算法,要求使用最少的附加空间。
 解:输入:长度为n的线性表数组A(1:n)
 输出:逆转后的长度为n的线性表数组A(1:n)。
 C语言描述如下(其中ET为数据元素的类型):
 
 2. 编写程序,将若干整数从键盘输入,以单链表形式存储起来,然后计算单链表中结点的个数(其中指针P指向该链表的第一个结点)。
 解:编写C程序如下(已上机通过):
 全局变量及函数提前说明:
 
#include<stdio.h>
 #include<stdlib.h>
 typedef struct liuyu{int data;struct liuyu*link;}test;
 liuyu *p,*q,*r,*head;
 int m=sizeof(test);
void main () /第一步,从键盘输入整数,不断添加到链表/
 {int i;
 head=(test*)malloc(m); /m=sizeof(test);/
 p=head; i=0;
 while (i!=-9999)
 { printf(“/ninput an integer [stop by ‘-9999’]:”);
 scanf(“%d”,&i);
 p->data=i; /* input data is saved /
 p->link=(test)malloc(m); /m=sizeof(test));/
 q=p;
 p=p->link;
 }
 q->link=NULL; /原先用p->link=NULL似乎太晚!/
p=head; i=0; /统计链表结点的个数并打印出来/
 while (p->link!=NULL)
 {printf(“%d”,p->data);
 p=p->link;
 i++;
 }
 printf(“\n node number=%d\n”, i-1); /结点的个数不包括-9999/
 }
