单链表
最近在研究数据结构,好不容易,自己写了个程序,建立一个单链表,插入数据元素,再是输出数据元素,整了好几天,今天才发现,单链表的头结点是不需要输出的。在单链表的头结点中,数据域不存储线性表的数据元素,只放表长等信息,指针域存储首元结点(头结点后的结点)的地址;
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
#define SIZE 10
struct LinkList{
char data[SIZE];
LinkList *next;
};
//创建链表函数
void CreateList_L(LinkList *&HeadNode, int n)
{
int i;
LinkList *FirstNode,*TempNode;
HeadNode=(LinkList *)malloc(sizeof(LinkList));
TempNode=HeadNode;
printf("请输入链表中所要存储的数据:");
// cin>>HeadNode->data;
for(i=0;i<n;i++)
{
FirstNode=(LinkList *)malloc(sizeof(LinkList)); //创建一个新结点
cin>>FirstNode->data;
TempNode->next=FirstNode;
TempNode=FirstNode;
}
TempNode->next=NULL;
if(HeadNode->next!=NULL)
{
cout<<"链表建立成功!"<<endl;
}
}
void DispList(LinkList *Node) //原来的程序主要是输出错误,不应该把头结点输出,
{
while(Node->next!=NULL)
{
Node=Node->next;
cout<<Node->data<<endl;
}
}
int main()
{
LinkList *HeadNode;
int n=3;
CreateList_L(HeadNode,n);
DispList(HeadNode);
free(HeadNode); //释放动态分配的内存
system("pause");
return 0;
}

浙公网安备 33010602011771号