学完c语言后?

Python021

学完c语言后?,第1张

如果学了C 不会数据结构的话 等于白学了,必须会数据结构,比如链表,树,图等几个主要的结构

以前我也是刚学完C不太会数据结构,但其实学数据结构最关键的是要学会typedef的用法,要吃透,吃透他就差不多了,再要注意的是数据结构上的程序都是个抽象概念,上面的程序都是不能直接运行的,比如上面的一些函数,都是要自己去定义出来才行的

这里我有些题目 你先不必把数据结构一本书都看完,你做一道题,肯定与相关的数据结构知识有关,你对照这些题目去学数据结构上的知识点,相信你就会很快理解数据结构了

1. 设计一个单循环链表, 对链表进行相应的删除操作。

数据输入:

第一行为的正整数个数m。

第二行为要处理的m个正整数,中间用一个空格间隔;

第三行为要删除的数据位置,可能为多次循环后之值。

数据输出:

输出删除后的数据排列,中间用空格间隔。

示例:

输入文件input1.txt:

3

1 2 3

5

输出:(标准输出)

1 3

2. 设计一个有序顺序表,要求对两个顺序表中的元素进行排序后输出。有序顺序表和顺序表的主要区别是有序顺序表中的数据元素按数据元素值非递减有序。

数据输入:

第一行为要处理的第一个顺序表包含的数据个数m。

第二行为要处理的第一个顺序表,m个正整数之间用空格间隔。

第三行为要处理的第二个顺序表包含的数据个数n。

第四行为要处理的第二个顺序表,n个正整数之间用空格间隔。

数据输出:

输出合并后的有序顺序表,数据之间用空格间隔。

示例:

输入文件input2.txt:

2

1 4

2

3 2

输出:(标准输出)

1 2 3 4

3. 编写一个判断算术表达式中开括号和闭括号是否配对的算法。

数据输入:

第一行:算术表达式个数n

第二行到第(n+1)行:n个算术表达式

数据输出:

第一行到第n行:n个算术表达式是否匹配,匹配为1,不匹配为0。

示例:

输入文件input4.txt:

2

3+(4-5*6)

1-((4-8/2)

输出:(标准输出)

1

0

4. 链式堆栈设计。要求用链式堆栈设计实现堆栈。

数据输入:

第一行:要入栈的数据个数m。

第二行:要入栈的m个数据。

第三行:要取出的第n个数据。

数据输出:

输出第n个数据的值。

示例:

输入文件input5.txt:

5

2 4 6 8 10

4

输出:(标准输出)

4

5. 设串采用静态数组存储结构,编写函数实现串的替换,即要求在主串S中,查找是否存在子串T,若主串S中存在子串T,则用子串V替换子串T;若主串S中不存在子串T,则返回0。

数据输入:

第一行:测试串的个数n

第二行到第(n+1)行:n个串的值

第(n+2)行:子串T

第(n+3)行:子串V

数据输出:

第一行到第n行:经过处理之后的n个串,如果存在子串T,则返回替换之后的串,如果不存在子串T,则返回0。

示例:

输入文件input7.txt:

2

I am a student

I am a teacher

student

teacher

输出:(标准输出)

I am a teacher

0

6. 设串采用静态数组存储结构,试比较两个串的大小。

数据输入:

第一行:第一个串的值

第二行:第二个串的值

数据输出:

第一行:两个串的比较结果,比较结果可能有大于、等于和小于三种情况,分别输出”>”,”=”,”<”。

示例:

输入文件input8.txt:

I am a student

I am a teacher

输出:(标准输出)

<

7. 设对称矩阵A、B和C为采用压缩存储方式存储的n阶上三角矩阵,矩阵元素为整数类型,要求:实现矩阵加C = A + B和矩阵乘C = A × B。

数据输入:

第一行:矩阵的行列数m。

第二行到第(m+1)行:矩阵A的各行的的值。

第(m+2)行到第(2m+1)行:矩阵B的各行的的值。

数据输出:

第1行到第m行:矩阵C各行的值。

第m+1行到第2m行:矩阵D各行的值。

示例:

输入文件input10.txt:

2

1 2

3 4

5 6

7 8

输出:(标准输出)

6 8

10 12

19 22

43 50

8. 若将稀疏矩阵中的非零元素以行序为主序的顺序存于一个一维数组中,并用一个二维数组表示稀疏矩阵中的相应元素是否是零元素,若稀疏矩阵中某元素是零元素,则该二维数组中对应位置的元素为0;否则为1。例如对稀疏矩阵A,可用一维数组V={10,20,30,40}和二维数组{1,0,1,0,0,1,1,0,0}表示该稀疏矩阵。实现使用上述稀疏矩阵存储结构的矩阵加运算X=X+Y。

数据输入:

第一行:矩阵X非零各元素的个数m。

第二行:矩阵X的m个非零元素的值。

第三行:矩阵X的二维0,1数组。

第四行:矩阵Y非零各元素的个数n。

第五行:矩阵Y的n个非零元素的值。

第六行:矩阵Y的二维0,1数组。

数据输出:

第一行:矩阵X与Y相加之后非零各元素的值。

第二行:矩阵XY相加之后的二维0,1数组。

示例:

输入文件 input11.txt:

2

1 2

0 1 0 1

2

3 4

1 0 1 0

输出:(标准输出)

3 1 4 2

1 1 1 1

9. 背包问题。设有一个背包可以放入物品的重量为s,现有n件物品,重量分别为w[0],w[1],...,[n-1]。问题是能否从这n件物品中选择若干件放入此背包中使得放入的重量之和正好等于s。如果存在一种符合上述要求的选择,则称此背包问题有解;否则称此背包问题无解。

数据输入:

第一行:测试集合个数m。

第二行:第一个测试用例的s值。

第三行:第一个测试用例的物品数量n。

第四行:第一个测试用例的n件物品的重量,中间用空格分开。

第五行:第二个测试用例的s值。

第六行:第二个测试用例的物品数量n。

第七行:第二个测试用例的n件物品的重量,中间用空格分开。

………

第2m行:第m个测试用例的s值。

第2m+1行:第m个测试用例的物品数量n。

第2m+2行:第m个测试用例n件物品的重量,中间用空格分开。

数据输出t:

第一行到第m行:分别输出是否成功,如果可以放入和为s的物品,则输出1,否则输出0。

示例:

输入文件input13.txt:

2

21

5

2 5 9 11 13

13

4

2 3 5 8

输出:(标准输出)

0

1

10. 用递归算法实现折半查找问题。

数据输入:

第一行:测试集合个数m。

第二行:第一个测试用例测试数据的个数n。

第三行:第一个测试用例的要查找的s值。

第四行:第一个测试用例的n个测试数据。

第五行:第二个测试用例测试数据的个数n。

第六行:第二个测试用例的s值。

第七行:第二个测试用例的n个测试数据。

………

第2m行:第m个测试用例测试数据的个数n。

第2m+1行:第m个测试用例的s值。

第2m+2行:第m个测试用例的n个测试数据。

数据输出:

第一行到第m行:分别输出是否成功,如果能查到,则输出查到的位置,否则输出0。

示例:

输入文件input14.txt:

2

5

3

2 3 5 9 11

5

4

2 3 5 9 11

输出:(标准输出)

2

0

11. 根据输入重构一个二叉树,输出按不同顺序遍历的节点序列

数据输入:

第一行是一个整数N(1<=N<=20),表示有多少个测试例子,以下每行是一个测试例子。每个测试例子第一个是一个整数M,表示输出的遍历顺序,其中M=0,表示前序;M=1,表示中序;M=2,表示后序。然后是一个字符序列,字符序列由A-Z和#表示,A-Z表示节点,#表示空。如果字符所在字符串的位置为i(i为正整数,位置从1开始计数),则位置为i*2,i*2+1的节点为它的子节点。如果i*2,i*2+1超过字符串长度,表示子节点为空。

数据输出:

每行输出一个例子的结果。一个字符串,中间无空格。

示例:

输入文件名:input16.txt

2

0 AB#CD######EF

1 AB#CD######EF

输出:(标准输出)

ABCDEF

CBEDFA

12. 根据输入的二叉树前序和中序遍历序列重构二叉树,输出对应节点的左右子节点。

数据输入:

第一行是一个整数N(1<=N<=20),表示有多少个测试例子。以下每个测试例子的第一行是本测试例子的二叉树的前序遍历,第二行是中序遍历,第三行首先是一个整数M,表示要求输出结果的数目,以后有M个节点,每个中间由一个空格隔开。

数据输出:

每行输出一个例子的所有结果,如果其子节点为空则输出字符#,同一例子的不同节点的输出结果之间用一个空格隔开

示例:

输入文件名:input17.txt

1

ABCDEF

CBEDFA

3 A B C

输出:(标准输出)

B# CD ##

C语言是一个有结构化程序设计、具有变量作用域以及递归功能的过程式语言。

C语言传递参数均是以值传递,另外也可以传递指针。

不同的变量类型可以用结构体组合在一起。

只有32个保留字,使变量、函数命名有更多弹性。

部份的变量类型可以转换,例如整型和字符型变量。

通过指针,C语言可以容易的对存储器进行低级控制。

预编译处理让C语言的编译更具有弹性。

扩展资料:

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料:C语言-百度百科