DS博客作业02--线性表
#1.本周学习总结(0-4分)
1.1 总结线性表内容
- 顺序表结构体定义:
#define MAXSIZE 100 //最大长度
typedef struct {
ElemType *elem; //指向数据元素的基地址
int length; //线性表的当前长度
}SqList;
- 顺序表插入:
for (j=L->length;j>i;j--) //将data[i..n]元素后移一个位置
L->data[j]=L->data[j-1];
L->data[i]=e; //插入元素e
L->length++; //顺序表长度增1
- 顺序表的删除:
for (int j=i;j<L->length-1;j++)
L->data[j]=L->data[j+1];
L->length--; //顺序表长度减1
return true;
- 链表结构体定义:
typedef struct LNode{
ElemType data; //数据域
struct LNode *next; //指针域
}LNode,*LinkList;
- 头插法建链表:
for(i=0;i<n;i++){
nodePtr=new LNode;
nodePtr->data=a[i];
nodePtr->next=L->next;
L->next= nodePtr;
- 尾插法建链表:
for(i=0;i<n;i++) {
nodePtr=new LNode;
nodePtr->data=a[i];
rearPtr->next=s;//尾部插入新结点
rearPtr=s;
- 链表插入:
if(p>length)
{
s->data[p]=x;
}
else
{
for(i=length;i>=p;i--)
{
s->data[i]=s->data[i-1];
}
s->data[p-1]=x;
}
- 删除操作:
if(p>length)
{
return false;
}
else
{
for(i=p-1;i<=length-1;i++)
{
s->data[i]=s->data[i+1];
}
}
有序表,尤其有序单链表数据插入、删除,有序表合并
循环链表、双链表结构特点
上面要求是必须完成,但是完成时候需要根据实际所学再展开。内容简单应付,0分。注意每个知识点务必要举例,图形等说明。
1.2.谈谈你对线性表的认识及学习体会。
这里可以写一些你在操作线性表时候经常碰到问题及解决方法。
#2.PTA实验作业(0-2分)
选3道PTA题目,不写伪代码,只贴代码截图,并记录代码提交碰到问题及解决方法。必须选择线性结构应用题目,不得选操作集类似题目,头插法、尾插法、链表逆转也不得选。(选,则为0分)选择难度越高题目得分越高。
2.1.题目1:题目名称
2.1.1代码截图(注意,截图,截图,截图。不要粘贴博客上。)
2.1.2本题PTA提交列表说明。
PTA提交列表中的每个错误详细说明为什么及如何解决。
2.2 题目2同题目1
2.3 题目3
#3.阅读代码(0--4分)