关于数据结构头尾插法有无头结点算
#include
#include
#include
using namespace std;
typedef struct node{
char data;
struct node *next;
}Node;
Node * CreateLinkBase(string & s){ //尾插法建立带头结点的链表
int num=s。 length();
Node *head,*pre,*p;
head=(Node*)malloc(sizeof(Node));
head->next=NULL;
pre=head;
for(int i=0;inext=p;
p->data=s[i];
p...全部
#include
#include
#include
using namespace std;
typedef struct node{
char data;
struct node *next;
}Node;
Node * CreateLinkBase(string & s){ //尾插法建立带头结点的链表
int num=s。
length();
Node *head,*pre,*p;
head=(Node*)malloc(sizeof(Node));
head->next=NULL;
pre=head;
for(int i=0;inext=p;
p->data=s[i];
p->next=NULL;
pre=p;
}
return head;
}
Node * CreateLinkTop(string &s){ //头插法建立带头结点的链表
Node *head,*p;
head=(Node*)malloc(sizeof(Node));
head->next=NULL;
int len=s。
length();
for(int i=0;idata=s[i];
p->next=head->next;
head->next=p;
}
return head;
}
Node *FindLink(char c,Node *head) //查询
{
Node *temp=head;
temp=head->next;
do{
if(temp->data==c)
{
coutnext;
}while(temp!=NULL);
if(temp==NULL)
coutnext;
while(p->data!=NULL)
{
coutdata;
if(p->next==NULL)
break;
else
p=p->next;
}
coutnext->data==c)
{
temp->next=temp->next->next;
coutnext;
}while(temp!=NULL);
}
int main(){ //测试
string input;
Node *head1,*head2;
cout>input;
cout>c;
FindLink(c,head1);
cout>d;
DeleteLink(d,head1);
system("pause");
return 0;
}。
收起