帧
#include<iostream>
#include<string>
using namespace std;
typedef struct data_frame
{
//数据域
char frame[20];
//指针域
struct data_frame* next;
}frame;
void link_creat_head(frame** p_head, frame* p_new)
{
frame* p_mov = *p_head;
if (*p_head == NULL) //当第一次加入链表为空时,head执行p_new
{
*p_head = p_new;
p_new->next = NULL;
}
else //第二次及以后加入链表
{
while (p_mov->next != NULL)
{
p_mov = p_mov->next; //找到原有链表的最后一个节点
}
p_mov->next = p_new; //将新申请的节点加入链表
p_new->next = NULL;
}
}
void link_cheek(frame** p_head, frame* p_new) {
string a = "LS", b = "C";
frame* p_mov = *p_head;
frame* p_cheek = *p_head;
while (p_mov != NULL) {
if (p_mov->frame == a) {
cout << p_mov->frame;
break;
}
p_mov = p_mov->next;
p_cheek = p_new;
p_new->next = NULL;
p_cheek = p_cheek->next;//把起始帧之前的不完整帧扔到后面去储存;
}
while (p_mov != NULL) {
if (p_mov->frame == b) {
break;
}
p_mov = p_mov->next;
cout << p_mov->frame;
}
}
int main()
{
frame* head = NULL, * p_new = NULL;
int num, i;
cin >> num;
for (i = 0; i < num; i++) {
p_new = (frame*)malloc(sizeof(char));//开辟空间
if (p_new == NULL) {
return NULL;
}
cin >> p_new->frame;
link_creat_head(&head, p_new);
}
link_cheek(&head, p_new);
}
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单