<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">今日内容:</span>
1.老大完成了小车的爬坡,爬楼梯,管道,栅栏,66666明天去欣赏升级版战车!
2.算法时间复杂度、空间复杂度完成
3. 线性表
(1)由零个或多个元素组成的有序序列。第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱一个后继。
(2)数据类型包括原子类型和结构类型
(3)抽象数据类型
(4) 说了线性表怎能离开链表呢?今天就去回顾了一条链表题,有些忘了,看来要常复习啊
/*
建立一条有序链表。链表的每个节点包括学号、姓名、年龄、c++成绩等
定义3个函数,分别实现建立、输出、释放链表的操作。要求建立的链表按
成绩升序排列。
*/
#include<iostream.h>
#define NULL 0 //宏定义
struct Node
{
int id,age;
char name[10];
float c;
Node *next;
};
//创建链表
Node *Creat(int n)
{
Node *p,*p1,*p2,*h = NULL;
int i = 0;
if(n < 1) return NULL;
while(i < n)
{
p = new Node;
cin>>p->id>>p->name>>p->age>>p->c;
p->next = NULL;
if(h == NULL) h = p; //空表,将新产生的结点作为首结点
else
{
p1 = p2 = h;
while(p2 && p->c >= p2->c)//查找插入位置
{
p1 = p2;
p2 = p1->next;
}
if(p2 == h) //建立新的结点插入链首
{
p->next = p2;
h = p;
}
else
{
p -> next = p2;
p1 ->next = p;
}
}
i++;
}
return h;
}
//输出链表
void print(Node *h)
{
Node *p;
p = h;
while(p != 0)
{
cout<<p->id<<'\t'<<p->name<<'\t'<<p->age<<'\t'<<p->c<<endl;
p = p->next;
}
cout<<endl;
}
//删除链表
void deletechain(Node *h)
{
Node *p;
while(h)
{
p = h;
h = h->next;
delete p;
}
}
void main()
{
int n;
cout<<"请输入班级人数:"<<endl;
cin>>n;
cout<<endl;
cout<<"请输入班级学生信息!"<<endl;
cout<<"学号 姓名 年级 成绩"<<endl;
Node *h;
h = Creat(n);
cout<<"建立的链表为:"<<endl;
cout<<endl<<"学号 姓名 年级 成绩"<<endl;
print(h);
deletechain(h);
}
明日计划:
1. 链表复习
2. 线性表看4个