yiyulhb / 2023-07-17 / 原文

#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 或调试 >“开始执行(不调试)”菜单