第二章学习小结
Posted lccgl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二章学习小结相关的知识,希望对你有一定的参考价值。
一、对本章内容的小结:
本章主要讲述了线性表的定义、特点、表示及实现,同时也说明了顺序表与链表之间的异同,让我们对顺序表和链表有了更深入的认识。学习本章知识后,我们 理解了线性表的基本性质。顺序表可以用数组来表示,可以随机存取元素,但是是静态分配内存空间;链表可用指针来表示,动态分配内存空间,但存取要从头指针开始。数组的优势在于查找数组元素非常方便,而链表可以更好地进行插入和删除工作。在实际应用中,我们应该结合实际情况,选择合适的算法和结构,以此让我们的程序占用更少的内存空间,效率、正确率更高。
二、完成作业或实践时解决困难的经验分享:
(1)结合上学期学过的知识,我们可以将书本上的排序方法制作成一个函数,运用到作业中,解决排序的问题。我采用的是选择排序法:
void sort(int a[], int n)
{
int i, j, p, t;
for (i = 0; i < n - 1; i++)
{
p = i;
for (j = i + 1; j < n; j++)
{
if (a[j] < a[p])
p = j;
}
if (p != i)
{
t = a[p];
a[p] = a[i];
a[i] = t;
}
}
}
其中a[]表示的是要排序的数组,n表示数组元素的个数。
在主函数中,我们只需要调用该函数即可完成函数元素的升序排序。
(2)我们可以采用int* a=new int[ ]的方式,动态分配内存空间,同时它具有数组的优点,在后面的操作上基本与数组无异,分配内存的方式如下:
cin >> n;
while (p)
{
pL = p; //令前指针指向p
if (p->pNext) //如果p的Next指针不为空
{
p = p->pNext;
delete pL; //删除前指针所在的节点
}
else //此处表示p已指向的是最后一个节点
{
delete p;
p = NULL; //将p化为空指针,防止指针非法访问
}
}
以上是关于第二章学习小结的主要内容,如果未能解决你的问题,请参考以下文章