1、创建一个简单链表,新结点链入表头,最后输出链表。
#include <iostream>
using namespace std;
#define New(p) {p=(Node *)malloc(sizeof(Node));p->ch=getchar();p->next=NULL;}
typedef struct node
{
char ch;
struct node *next;
}Node;
//新结点链入表头
int main()
{
Node *first = NULL,*p;
char ch;
for(int i=0;i<10;i++)
{
New(p);
p->next = first;
first = p;
}
p = first;
while(p!=NULL)
{
printf("%c ",p->ch);
p = p->next;
}
system("pause");
return 0;
}
输入输出显示:
若输入的字符数大于10个,只取前10个。若小于10个,则不足的都是空字符。
2、创建一个链表,新结点链入表尾,最后输出链表。
#include <iostream>
using namespace std;
#define New(p) { p=(Node *)malloc(sizeof(Node));p->ch=getchar();p->next=NULL;}
typedef struct node
{
char ch;
struct node *next;
}Node;
//新结点链入表尾
int main()
{
Node *p1,*p2 = NULL,*head = NULL;//p1表示新建的结点,p2是p1的上一个结点,head是头结点
for(int i=0;i<10;i++)
{
New(p1);
if(head == NULL)
{
head = p1;
}
else
{
p2->next = p1;
}
p2 = p1;
}
while(head!=NULL)
{
cout<<head->ch<<" ";
head = head->next;
}
system("pause");
return 0;
}
输入输出显示: