//头插法建一链表。包含两个函数:
head_insert(); //头插结点
show_list ();//显示链表内容
代码如下:
//建链表
#include<iostream>
#include<cstddef>
#include<string>
using namespace std;
struct Node
{
string item;
int count;
Node *link;
};
typedef Node* NodePtr;
void head_insert(NodePtr head,string an_iterm,int a_number);
void show_list(NodePtr &head);
int main()
{
NodePtr head=NULL;
head_insert(head,"abc",2);
head_insert(head,"def",3);
head_insert(head,"ghi",5);
show_list(head);
return 0;
}
void head_insert(NodePtr head,string an_item,int a_number)
{
NodePtr temp_ptr;
temp_ptr=new Node;
temp_ptr->item=an_item;
temp_ptr->count=a_number;
temp_ptr->link=head;
head=temp_ptr;
}
void show_list(NodePtr& head)
{
NodePtr p=head;
while(p!=NULL)
{
cout<<p->item<<"/t";
cout<<p->count<<endl;
p=p->link;
}
}
编译没错,但运行没有结果。
修改:void head_insert(NodePtr head,string an_item,int a_number);函数中的NodePtr head应该为传引用调用,即改为void head_insert(NodePtr& head,string an_item,int a_number)即可!