两道数据结构编程题

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 /

}

相关推荐
4z3324 分钟前
Android15 Framework(3):系统服务进程 SystemServer 解析
android·源码阅读
没有了遇见1 小时前
Android 之Google Play bundletool 校验 AAB包
android·google
CodeByV1 小时前
【算法题】双指针(二)
数据结构·算法
yuanhello1 小时前
【Android】Android的键值对存储方案对比
android·java·android studio
Ditglu.1 小时前
CentOS7 MySQL5.7 主从复制最终版搭建流程(避坑完整版)
android·adb
恋猫de小郭1 小时前
Android Studio Otter 2 Feature 发布,最值得更新的 Android Studio
android·前端·flutter
走在路上的菜鸟2 小时前
Android学Dart学习笔记第十二节 函数
android·笔记·学习·flutter
没有了遇见2 小时前
Android + Google Play:老项目适配实战指南
android·google
怀君2 小时前
Uniapp——开发Android插件教程
android·uni-app