单链表

最近在研究数据结构,好不容易,自己写了个程序,建立一个单链表,插入数据元素,再是输出数据元素,整了好几天,今天才发现,单链表的头结点是不需要输出的。在单链表的头结点中,数据域不存储线性表的数据元素,只放表长等信息,指针域存储首元结点(头结点后的结点)的地址;

#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;
}

posted @ 2012-07-31 01:00  庞 雷  阅读(114)  评论(0)    收藏  举报