单链表建立c++实现
2014-06-10 15:22
218 查看
学C++,第一编写链表程序。
首先是链表节点的建立,分为指针域和数据域,程序建立如下:
这里定义了链表的数据域为结构体数据,包含姓名和年龄。指针域包含指向下一个节点的指针next。
输入节点数据,创建链表。程序如下:
主函数如下:
首先是链表节点的建立,分为指针域和数据域,程序建立如下:
typedef struct Data { string name; int age; }; typedef struct list { Data data; struct list *next; };
这里定义了链表的数据域为结构体数据,包含姓名和年龄。指针域包含指向下一个节点的指针next。
输入节点数据,创建链表。程序如下:
list *creatList(list *head,Data data) { list *node,*temp; node=new list; //给新节点开辟内存 node->data=data; //节点赋值并指向NULL,作为末节点 node->next=NULL; if(head == NULL) //当链表是空表的时候 { head = node; return head; } temp=head; while(temp->next!=NULL) //指向尾节点,并在尾节点添加一节点node { temp=temp->next; } temp->next=node; return head; }创建后,对链表进行顺序显示,程序代码如下:
int lenList(list *head)// 链表的测长 { int n=0; list *p; p=head; while(p!=NULL) { p=p->next; n++; } return (n); } void display(list *head)//链表的显示 { list *temp; Data data; int n; temp=head; cout<<"链表的长度为:"; n=lenList(head); cout<<n<<endl; while(temp) //链表内容的显示 { data=temp->data; cout<<data.name<<" "<<data.age<<endl; temp=temp->next; } }显示时,先对链表遍历测试其长度。
主函数如下:
int main() { list *node,*head=NULL; Data data; int k; string name; int age; cout<<"输入数据,名字,年龄:(以输入年龄0表示结束)"<<endl; while(1) { cin>>data.name>>data.age; if(data.age==0)break; head=creatList(head,data);//这里注意一定要返回头结点 } display(head); }运行结果如下:
相关文章推荐
- 在单链表的基础上用c++实现的链栈,并使用进制转换,表达式求值两个小程序来测试
- C语言单链表的建立,查找,添加,删除,修改功能实现
- C++实现单链表操作
- 如何用VS2010新建一个类?用来写C++文件的标准格式建立?就是能做到声把声明放在.H里,实现放在.CPP里的
- 单链表的逆置-C++实现
- 单链表的C++代码实现
- C++实现单链表常用功能(不带头结点)
- 单链表c++简单模板实现
- C++模版编程——单链表的实现
- C++实现:单链表的反转(序)操作
- 数据结构之单链表 C++ 实现
- 数据结构_队列_用链表动态建立释放节点实现队列各种操作_C++实现
- C++实现单链表(含头结点)
- 单链表c++简单模板实现
- 数据结构之单链表(C++实现)
- Huffman树的建立(c++实现)
- 单链表的插入和删除 C++实现
- 数据结构_图_建立十字链表求有向图中每个顶点的入度出度并输出和它相关的弧_C++实现
- C++实现建立大根堆
- 数据结构之单链表实现队列C++