帮忙完成啊,链表算法问题,谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/23 22:34:32
对于一个给定的线性链表,编写一个程序,其功能是完成把值为a的结点插在值为b的结点的前面。若值b的结点不在线性链表中,则把a插在链表的最后。
用C++写出相应程序,并做出相应注释。
谢谢你们,太符合要求了

#include "iostream.h"
#include "string.h"

typedef struct SList //定义链表结构
{
char elem[8];
struct SList * next;
} SL;
SL * create_list(); //函数create_list用于建立空链表
int insert_list(SL * head,char * elem);//函数insert_list用于在链表中插入新结点
void brow_list(SL * head); //函数brow_list用于浏览链表

void main()
{
SL *head; //定义链表头指针
char elem[8];
head=NULL; //初始化头指针
head=create_list();
while(1)
{
cout<<"元素(输入0 结束):";
cin>>elem;
if(strcmp(elem,"0")==0) //当输入0时终止循环
break;
insert_list(head,elem);//调用函数insert_list插入新结点
}
cout<<"\n链表:";
brow_list(head);
cout<<"\n\n插入值为a的结点(输入a):";
cin>>elem;
SL* node = head; ;//定义链表头指针
while(NULL != node->next && 0 != strcmp(node->next->elem, "b&