两道数据结构编程题

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 /

}

相关推荐
Mart!nHu17 分钟前
Android 10&15 Framework 允许设置系统时间早于编译时间
android
无限进步_1 小时前
【C语言&数据结构】二叉树遍历:从前序构建到中序输出
c语言·开发语言·数据结构·c++·算法·github·visual studio
编程之路从0到11 小时前
ReactNative新架构之Android端TurboModule机制完全解析
android·react native·源码阅读
菜鸟233号2 小时前
力扣518 零钱兑换II java实现
java·数据结构·算法·leetcode·动态规划
iloveAnd2 小时前
Android开发中痛点解决(二)兼容性:AndroidX和gradle版本的兼容性
android·兼容性·androidx
stevenzqzq2 小时前
DataStore基本使用教程
android
鱼跃鹰飞3 小时前
面试题:解释一下什么是全字段排序和rowid排序
数据结构·数据库·mysql
LawrenceMssss3 小时前
由于创建一个完整的App涉及到多个层面(如前端、后端、数据库等),并且每种语言通常有其特定的用途(如Java/Kotlin用于Android开发,Swift/Objective-C用于iOS开发,Py
android·java·ios
Ka1Yan4 小时前
[链表] - 代码随想录 206. 反转链表
数据结构·链表
chen_mangoo4 小时前
HDMI简介
android·linux·驱动开发·单片机·嵌入式硬件